{
  "components": {
    "schemas": {
      "output_qbo_accountbasedexpenseline": {
        "additionalProperties": true,
        "properties": {
          "AccountBasedExpenseLineDetail": {
            "$ref": "#/components/schemas/output_qbo_accountbasedexpenselinedetail",
            "description": "LineDetail"
          },
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to AccountBasedExpenseLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive Integer."
          }
        },
        "type": "object"
      },
      "output_qbo_accountbasedexpenselinebill": {
        "additionalProperties": true,
        "properties": {
          "AccountBasedExpenseLineDetail": {
            "$ref": "#/components/schemas/output_qbo_accountbasedexpenselinedetail",
            "description": "LineDetail"
          },
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to AccountBasedExpenseLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive Integer."
          },
          "LinkedTxn": {
            "description": "Zero or more PurchaseOrder transactions linked to this Bill object. The LinkedTxn.TxnType should always be set to PurchaseOrder . Use LinkedTxn.TxnId as the ID of the PurchaseOrder. When updating an existing Bill to link to a PurchaseOrder a new Line must be created. This behavior matches the QuickBooks UI as it does not allow the linking of an existing line, but rather a new line must be added to link the PurchaseOrder. Over the API this is achieved by simply updating the Bill Line.Id to something new. This will ensure old bill line is deleted and the new line is linked to the PurchaseOrder.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_accountbasedexpenselinedetail": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Expense account associated with this item. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType=Expense . Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively. For France locales: The account associated with the referenced Account object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then this account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "BillableStatus": {
            "description": "The billable status of the expense. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled",
            "readOnly": true,
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the expense. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Customer associated with the expense. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "MarkupInfo": {
            "$ref": "#/components/schemas/output_qbo_markupinfo",
            "description": "Markup information for the expense."
          },
          "TaxAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Sales tax paid as part of the expense."
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "The TaxCode associated with the sales tax for the expense. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TaxInclusiveAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The total amount of the line item including tax."
          }
        },
        "type": "object"
      },
      "output_qbo_accountinginfoprefs": {
        "additionalProperties": true,
        "properties": {
          "BookCloseDate": {
            "description": "This setting corresponds to the Closing date preference in the QuickBooks Online Company Settings and specifies the date the books are closed: income and expense accounts are closed and net profit or loss is rolled up into the retained earnings account. Transactions before this date are protected from changes.",
            "readOnly": true,
            "type": "string"
          },
          "ClassTrackingPerTxn": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "This setting correspond to how classes are assigned when Track classes in QuickBooks Online Company Settings under Categories is set to On . If set to true , assign classes at the transaction level. Only one of ClassTrackingPerTxnLine or ClassTrackingPerTxn can be set to true at a given time. If Track classes is set to Off in company settings, both are set to false ."
          },
          "ClassTrackingPerTxnLine": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "This setting correspond to how classes are assigned when Track classes in QuickBooks Online Company Settings under Categories is set to On . If set to true , assign classes at the line level. Only one of ClassTrackingPerTxnLine or ClassTrackingPerTxn can be set to true at a given time. If Track classes is set to Off in company settings, both are set to false ."
          },
          "CustomerTerminology": {
            "description": "This setting corresponds to the Customer label preference in QuickBooks Online Company Settings and specifies the term used by the company for customers. This string is used in many places throughout the QuickBooks UI having to do with sales-side activities. Possible values include: Clients , Customers , Donors , Guests , Members , Patients , Tenants .",
            "type": "string"
          },
          "DepartmentTerminology": {
            "description": "Specifies the term used by the company for department. This string is used as a label on transaction forms. Possible values include: Business , Department , Division , Location , Property , Store , Territory . This is returned only if the company's Track location preference is enabled. See TrackDepartments for more details.",
            "type": "string"
          },
          "FirstMonthOfFiscalYear": {
            "description": "This setting corresponds to the First month of fiscal year preference in the QuickBooks Online Company Settings to specify the beginning of the company's fiscal year. Specify months as fulling spelled out: January , February , and so on.",
            "readOnly": true,
            "type": "string"
          },
          "TaxForm": {
            "description": "This setting corresponds to the Tax form preference in the QuickBooks Online Company Settings to specify the tax form your company files.",
            "readOnly": true,
            "type": "string"
          },
          "TaxYearMonth": {
            "description": "This setting corresponds to the First month of income tax year preference in the QuickBooks Online Company Settings to specify the beginning of the company's fiscal year. Specify months as fulling spelled out: January , February , and so on.",
            "readOnly": true,
            "type": "string"
          },
          "TrackDepartments": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "This setting corresponds to the Track locations preference in QuickBooks Online Company Settings under Categories. If Track locations is set to On , this attribute is returned as true in the response. Otherwise, false is returned."
          },
          "UseAccountNumbers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "This setting corresponds to Enable account numbers in QuickBooks Online Company Settings. If set to On , account names are displayed with their corresponding account numbers in chart of accounts. If set to off , account numbers are not displayed with account names in chart of accounts.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "output_qbo_accountresponse": {
        "additionalProperties": true,
        "properties": {
          "AccountSubType": {
            "description": "The account sub-type classification and is based on the AccountType value.",
            "type": "string"
          },
          "AccountType": {
            "description": "A detailed account classification that specifies the use of this account. The type is based on the Classification.",
            "type": "string"
          },
          "AcctNum": {
            "description": "User-defined account number to help the user in identifying the account within the chart-of-accounts and in deciding what should be posted to the account. The Account.AcctNum attribute must not contain colon (:). Name must be unique. Max length for Account.AcctNum : AU & CA: 20 characters. US, UK & IN: 7 characters",
            "type": "string"
          },
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
          },
          "Classification": {
            "description": "The classification of an account. Not supported for non-posting accounts. Valid values include: Asset , Equity , Expense , Liability , Revenue",
            "readOnly": true,
            "type": "string"
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which this account holds amounts.",
            "readOnly": true
          },
          "CurrentBalance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the balance amount for the current Account. Valid for Balance Sheet accounts.",
            "readOnly": true
          },
          "CurrentBalanceWithSubAccounts": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the cumulative balance amount for the current Account and all its sub-accounts.",
            "readOnly": true
          },
          "Description": {
            "description": "User entered description for the account, which may include user entered information to guide bookkeepers/accountants in deciding what journal entries to post to the account.",
            "type": "string"
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the object; derived from Name and ParentRef . The fully qualified name prepends the topmost parent, followed by each subaccount separated by colons and takes the form of Parent:Account1:SubAccount1:SubAccount2 . System generated. Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies the Parent AccountId if this represents a SubAccount."
          },
          "SubAccount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies whether this object represents a parent (false) or subaccount (true). Please note that accounts of these types - OpeningBalanceEquity , UndepositedFunds , RetainedEarnings , CashReceiptIncome , CashExpenditureExpense , ExchangeGainOrLoss cannot have a sub account and cannot be a sub account of another account.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the default tax code used by this account. Tax codes are referenced by the TaxCode.Id in the TaxCode object. For global locales, only."
          }
        },
        "type": "object"
      },
      "output_qbo_agedpayablesreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/output_qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_agedpayablestoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/output_qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/output_qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/output_qbo_agedpayablesreportrows",
            "description": "Top level container holding information for Aged Receivables report rows."
          }
        },
        "type": "object"
      },
      "output_qbo_agedreceivablesreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/output_qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_agedreceivablestoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/output_qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/output_qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/output_qbo_agedreceivablesreportrows",
            "description": "Top level container holding information for Aged Receivables report rows."
          }
        },
        "type": "object"
      },
      "output_qbo_associatedvalues": {
        "additionalProperties": true,
        "properties": {
          "Key": {
            "description": "For ExtensionType=DIMENSION , the unique ID of the dimension definition.",
            "type": "string"
          },
          "Value": {
            "description": "For ExtensionType=DIMENSION , the unique ID of the selected dimension value.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_attachableref": {
        "additionalProperties": true,
        "properties": {
          "CustomField": {
            "description": "If the user tries to fetch a record without permission, the permission denied message is conveyed through this field.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "EntityRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Object reference to which this attachment is linked. Set EntityRef.value with the Id of the target object as returned in its response body when queried. Set EntityRef.type with the specific type of the target object. For example, invoice , bill , item , etc."
          },
          "Inactive": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates whether or not to include references to hidden entities when filtering. When set to true , hidden references are returned in the result set. For filtering results, it works with AttachableRef.EntityRef.Type , AttachableRef.EntityRef.Value and AttachableRef.NoRefOnly filters in combination."
          },
          "IncludeOnSend": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Used when EntityRef.type references a transaction object. This field indicates whether or not the attachment is sent with the transaction when Save and Send button is clicked in the QuickBooks UI or when the Send endpoint (send email) is invoked for the object."
          },
          "LineInfo": {
            "description": "For transaction objects, used to reference a transaction detail line.",
            "type": "string"
          },
          "NoRefOnly": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates whether or not to find attachable records that have no references to any entity. Combine with AttachableRef.Inactive to return hidden references."
          }
        },
        "type": "object"
      },
      "output_qbo_attachableresponse": {
        "additionalProperties": true,
        "properties": {
          "AttachableRef": {
            "description": "Specifies the transaction object to which this attachable file is to be linked.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_attachableref"
            },
            "type": "array"
          },
          "Category": {
            "description": "Category of the attachment. Valid values include (case sensitive): Contact Photo , Document , Image , Receipt , Signature , Sound , Other .",
            "type": "string"
          },
          "ContentType": {
            "description": "ContentType of the attachment. Returned for file attachments.",
            "type": "string"
          },
          "FileAccessUri": {
            "description": "FullPath FileAccess URI of the attachment. Returned for file attachments.",
            "readOnly": true,
            "type": "string"
          },
          "FileName": {
            "description": "FileName of the attachment. Required for file attachments.",
            "type": "string"
          },
          "Id": {
            "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "Lat": {
            "description": "Latitude from where the attachment was requested.",
            "type": "string"
          },
          "Long": {
            "description": "Longitude from where the attachment was requested.",
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Note": {
            "description": "This note is either related to the attachment specified by FileName or is a standalone note. Required for standalone notes.",
            "type": "string"
          },
          "PlaceName": {
            "description": "PlaceName from where the attachment was requested.",
            "type": "string"
          },
          "Size": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Size of the attachment. Returned for file attachments.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Tag": {
            "description": "Tag name for the requested attachment.",
            "type": "string"
          },
          "TempDownloadUri": {
            "description": "TempDownload URI which can be directly downloaded by clients. Returned for file attachments.",
            "readOnly": true,
            "type": "string"
          },
          "ThumbnailFileAccessUri": {
            "description": "FullPath FileAccess URI of the attachment thumbnail if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
            "readOnly": true,
            "type": "string"
          },
          "ThumbnailTempDownloadUri": {
            "description": "Thumbnail TempDownload URI which can be directly downloaded by clients. This is only available if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_balancesheetreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/output_qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_balancesheetreporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/output_qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/output_qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/output_qbo_balancesheetreportrows",
            "description": "Top level container holding information for Profit and Loss report rows."
          }
        },
        "type": "object"
      },
      "output_qbo_batchitemresponse": {
        "additionalProperties": true,
        "properties": {
          "QueryResponse": {
            "additionalProperties": true,
            "type": "object"
          },
          "ResourceName": {
            "additionalProperties": true,
            "description": "The payload for the response. If the operation results in an error, a Fault object is returned.",
            "type": "object"
          },
          "bId": {
            "description": "Unique identifier for the batch item. This corresponds to the id supplied in the corresponding batch item request.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_batchresponse": {
        "additionalProperties": true,
        "properties": {
          "BatchItemResponse": {
            "description": "A wrapper around all response objects for this batch operation.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_batchitemresponse"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_billpaymentcheck": {
        "additionalProperties": true,
        "properties": {
          "BankAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the bank account. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.AccountType set to Bank and Account.AccountSubType set to Checking ."
          },
          "PrintStatus": {
            "description": "NeedToPrint Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_billpaymentcreditcard": {
        "additionalProperties": true,
        "properties": {
          "CCAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the credit card account. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for CCAccountRef.value and CCAccountRef.name , respectively. The specified account must have Account.AccountType set to Credit Card and Account.AccountSubType set to CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
          }
        },
        "type": "object"
      },
      "output_qbo_billpaymentresponse": {
        "additionalProperties": true,
        "properties": {
          "APAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
          },
          "CheckPayment": {
            "$ref": "#/components/schemas/output_qbo_billpaymentcheck",
            "description": "Information about a check payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is Check ."
          },
          "CreditCardPayment": {
            "$ref": "#/components/schemas/output_qbo_billpaymentcreditcard",
            "description": "Information about a credit card payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is CreditCard ."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .Required if multicurrency is enabled for the company"
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "Id": {
            "description": "Unique Identifier for an Intuit entity (object).",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items representing zero or more Bill , VendorCredit , and JournalEntry objects linked to this BillPayment object. Use Line.LinkedTxn.TxnId as the ID in a separate Bill, VendorCredit, or JournalEntry read request to retrieve details of the linked object. LinkedTxnLine:",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linelinkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PayType": {
            "description": "The payment type. Valid values include: Check , CreditCard",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the form.",
            "type": "string"
          },
          "ProcessBillPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates that the payment should be processed by merchant account service. Valid for QuickBooks companies with credit card processing."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount associated with this payment. This includes the total of all the payments from the payment line details. If TotalAmt is greater than the total on the lines being paid, the overpayment is treated as a credit and exposed as such on the QuickBooks UI. It cannot be negative."
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "type": "object"
      },
      "output_qbo_billresponse": {
        "additionalProperties": true,
        "properties": {
          "APAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
          },
          "Balance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "IncludeInAnnualTPAR": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_itembasedexpenselinebill"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_accountbasedexpenselinebill"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          },
          "VendorRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "type": "object"
      },
      "output_qbo_budgetdetail": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Account associated with this BudgetDetail. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType=Expense . Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively.",
            "readOnly": true
          },
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Amount assigned to a BudgetDetail.",
            "readOnly": true
          },
          "BudgetDate": {
            "description": "Date of the individual BudgetDetail.",
            "readOnly": true,
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively.",
            "readOnly": true
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Customer associated with this BudgetDetail. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively.",
            "readOnly": true
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "output_qbo_budgetresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
          },
          "BudgetDetail": {
            "description": "Container for the budget items.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_budgetdetail"
            },
            "type": "array"
          },
          "BudgetEntryType": {
            "description": "Period that this budget detail covers.. Valid values include: Monthly , Quarterly , Annually .",
            "readOnly": true,
            "type": "string"
          },
          "BudgetType": {
            "description": "Budget types. The only value currently supported is ProfitAndLoss .",
            "readOnly": true,
            "type": "string"
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "EndDate": {
            "description": "Budget end date.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
            "readOnly": true,
            "type": "string"
          },
          "StartDate": {
            "description": "Budget begin date.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_cashbackinfo": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "The bank acount into which the cashback amount is transferred. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and \\AccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
          },
          "Amount": {
            "description": "Amount of the cash back transaction.",
            "type": "string"
          },
          "Memo": {
            "description": "Memo associated with this cash back transaction.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_cashflowreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/output_qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_cashflowtoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/output_qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/output_qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/output_qbo_cashflowreportrows",
            "description": "Top level container holding information for Aged Receivables report rows."
          }
        },
        "type": "object"
      },
      "output_qbo_categoryresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "For categories, this is always set to true ."
          },
          "FullyQualifiedName": {
            "description": "Colon-separated list of the top-level category, followed by each sub-category in the hierarchy. Takes the form of Category:SubCategory1:SubCategory2:... . Limited to 5 levels: 4 category levels with an inventory, non-inventory, or service item as the 5th.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Level": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the level of the hierarchy in which the object is located. First sub-category level below the top-most category is 1. Returned in the response body only when SubItem is set to true . Sub-categories can be nested to a maximum depth of three levels below a top-level category.",
            "readOnly": true
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "Name of the category.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the parent of this sub-category. Returned in the response body only when SubItem is set to true . Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "SubItem": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Denotes this object is a sub-category. Returned in the response body if this object is a sub-category. true --This is a sub-category. false --This is a top-level category (default)."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Set to the literal string, Category . When querying Item objects with minor versions earlier than 4 specified, Category types are returned as type Service .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_changeorderresponse": {
        "additionalProperties": true,
        "properties": {
          "AcceptedBy": {
            "description": "Name of the customer or representative who accepted the change order. Populated when TxnStatus is set to Accepted .",
            "type": "string"
          },
          "AcceptedDate": {
            "description": "Date the change order was accepted. Populated when TxnStatus is set to Accepted .",
            "type": "string"
          },
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If false or null, sales tax is calculated first and then any discount is applied. If true , the discount is subtracted first and then sales tax is calculated."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Email address where the change order is sent. Required when EmailStatus is set to NeedToSend ."
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/output_qbo_memoref",
            "description": "User-entered message to the customer; visible on the Change Order document sent to the customer."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Use Customer.Id and Customer.DisplayName from the Customer object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the change order (for example, CO-001 ). If not provided, the value is null.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the change order. Valid values: NotSet , NeedToSend , EmailSent .",
            "type": "string"
          },
          "ExpirationDate": {
            "description": "Date by which the change order must be accepted before it expires.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items describing the work being added or removed. Supports SalesItemLineDetail and SubTotalLineDetail line types. Every line must include a LinkedTxn array referencing the parent project estimate with TxnType: \"Estimate\" . All lines must reference the same parent estimate. The Line array uses full-replace behavior on update — lines omitted from an update request are deleted.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_subtotalline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_discountline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "One or more linked transaction references at the header level, reflecting the parent project estimate. Also appears on each line item. Use LinkedTxn.TxnId as the ID in a separate Estimate read request to retrieve details of the linked object. TxnType must always be Estimate .",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "Organization-private note about the change order. This note does not appear on documents sent to the customer.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the project this change order belongs to. Must reference an active project. Without a valid ProjectRef , the change order will not appear in the Projects dashboard."
          },
          "SyncToken": {
            "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 fail. Only the latest version of the object is maintained by QuickBooks Online.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction including all line charges and taxes. Calculated by QuickBooks business logic from the sum of all line Amount values plus applicable tax. Do not include in create or update request bodies; any value supplied is overwritten.",
            "readOnly": true
          },
          "TotalCostAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total cost amount of the transaction, calculated from the sum of all line CostAmount values. Calculated by QuickBooks business logic; any value supplied is overwritten.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnStatus": {
            "description": "Current status of the change order. Valid values: Pending (default — created but not yet reviewed), Accepted (customer approved; project contracted total increases accordingly), Closed (converted to an Invoice or manually closed), Rejected (customer declined; does not affect project total).",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "Tax details for the transaction. Captures sales taxes calculated based on tax codes referenced by the transaction lines."
          }
        },
        "type": "object"
      },
      "output_qbo_checkpayment": {
        "additionalProperties": true,
        "properties": {
          "AcctNum": {
            "description": "Checking account number, as printed on the check.",
            "type": "string"
          },
          "BankName": {
            "description": "The name of the bank on which the check was drawn.",
            "type": "string"
          },
          "CheckNum": {
            "description": "The check number printed on the check.",
            "type": "string"
          },
          "NameOnAcct": {
            "description": "Name of persons or entities holding the account, as printed on the check.",
            "type": "string"
          },
          "Status": {
            "description": "Status of the check. Values provided by service/business logic.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_classresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub class separated by colons. Takes the form of Parent:Class1:SubClass1:SubClass2 . Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the Class.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "The immediate parent of the SubClass. Required if this object is a subclass."
          },
          "SubClass": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies whether this object is a subclass. true --this object represents a subclass. false or null--this object represents a top-level class."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_companycurrencyresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates whether this currency is active in the company or not. true --This currency is active and enabled for use by QuickBooks. false --This currency is inactive, is hidden from most display purposes, and is not availble for use with financial transactions."
          },
          "Code": {
            "description": "A three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. Click here for a list of supported currency codes.",
            "type": "string"
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "The full name of the currency.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_companyinforesponse": {
        "additionalProperties": true,
        "properties": {
          "CompanyAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Company Address as described in preference. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "CompanyName": {
            "description": "The name of the company.",
            "type": "string"
          },
          "CompanyStartDate": {
            "description": "DateTime when company file was created. This field and Metadata.CreateTime contain the same value.",
            "readOnly": true,
            "type": "string"
          },
          "Country": {
            "description": "Country name to which the company belongs for financial calculations.",
            "type": "string"
          },
          "CustomerCommunicationAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Address of the company as given to their customer, sometimes the address given to the customer mail address is different from Company address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "Email": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Default email address."
          },
          "EmployerId": {
            "description": "If your QuickBooks company has defined an EIN in company settings, this value is returned.",
            "type": "string"
          },
          "FiscalYearStartMonth": {
            "description": "The start month of fiscal year.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "LegalAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Legal Address given to the government for any government communication. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "LegalName": {
            "description": "The legal name of the company.",
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "NameValue": {
            "description": "Any other preference not covered with the standard set of attributes. See Data Services Extensions, below, for special reserved name/value pairs. NameValue.Name--Name of the element. NameValue.Value--Value of the element.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array"
          },
          "PrimaryPhone": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber",
            "description": "Primary phone number."
          },
          "SupportedLanguages": {
            "description": "Comma separated list of languages.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "WebAddr": {
            "$ref": "#/components/schemas/output_qbo_websiteaddress",
            "description": "Website address."
          }
        },
        "type": "object"
      },
      "output_qbo_contactinfo": {
        "additionalProperties": true,
        "properties": {
          "Telephone": {
            "type": "string"
          },
          "Type": {
            "description": "The type of contact information. Valid values: TelephoneNumber",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_creditcardpayment": {
        "additionalProperties": true,
        "properties": {
          "CreditChargeInfo": {
            "$ref": "#/components/schemas/output_qbo_creditchargeinfo",
            "description": "Holds creditcard information to request a credit card payment from a merchant account service."
          },
          "CreditChargeResponse": {
            "$ref": "#/components/schemas/output_qbo_creditchargeresponse",
            "description": "Holds credit-card transaction response information from a merchant account service."
          }
        },
        "type": "object"
      },
      "output_qbo_creditcardpaymentresponse": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction."
          },
          "BankAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Identifies the bank account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference."
          },
          "CheckNum": {
            "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
            "type": "string"
          },
          "CreditCardAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Identifies the credit card account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Memo": {
            "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "type": "object"
      },
      "output_qbo_creditchargeinfo": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount processed using the credit card."
          },
          "BillAddrStreet": {
            "description": "Credit card holder billing address of record: the street address to which credit card statements are sent.",
            "type": "string"
          },
          "CcExpiryMonth": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Expiration Month on card, expressed as a number: 1 =January, 2 =February, etc."
          },
          "CcExpiryYear": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Expiration Year on card, expressed as a 4 digit number 1999 , 2003 , etc."
          },
          "NameOnAcct": {
            "description": "Account holder name, as printed on the card.",
            "type": "string"
          },
          "PostalCode": {
            "description": "Credit card holder billing postal code. Five digits in the USA.",
            "type": "string"
          },
          "ProcessPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "- false or no value-Store credit card information only. Do not store QuickBooks Payment transaction information in CreditChargeResponse. - true -Store credit card payment transaction information in CreditChargeResponse below. Use this setting when QuickBooks Payments is configured to process credit card charges."
          },
          "Type": {
            "description": "Type of credit card. For example, MasterCard, Visa, Discover, American Express, and so on.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_creditchargeresponse": {
        "additionalProperties": true,
        "properties": {
          "AuthCode": {
            "description": "Code returned from the credit card processor to indicate that the charge will be paid by the card issuer.",
            "type": "string"
          },
          "CCTransId": {
            "description": "Unique identifier of the payment transaction. It can be used to track the status of transactions, or to search transactions.",
            "type": "string"
          },
          "Status": {
            "description": "Indicates the status of the payment transaction. Possible values include Completed , Unknown .",
            "type": "string"
          },
          "TxnAuthorizationTime": {
            "description": "Timestamp indicating the time in which the card processor authorized the transaction.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_creditmemoresponse": {
        "additionalProperties": true,
        "properties": {
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. US versions of QuickBooks only."
          },
          "Balance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Bill-to address of the credit memo. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Identifies the e-mail address where the credit-memo is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/output_qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the credit-memo. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively.",
            "readOnly": true
          },
          "PrintStatus": {
            "description": "Printing status of the credit-memo. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the deposit form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the CreditMemo was created from.",
            "readOnly": true
          },
          "RemainingCredit": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total credit amount still available to apply towards the payment.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks."
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "type": "object"
      },
      "output_qbo_currencyprefs": {
        "additionalProperties": true,
        "properties": {
          "HomeCurrency": {
            "$ref": "#/components/schemas/output_qbo_referencetype"
          },
          "MultiCurrencyEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Multicurrency enabled for this company. Not available with QuickBooks Simple Start.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "output_qbo_currencyref": {
        "additionalProperties": true,
        "properties": {
          "name": {
            "description": "The full name of the currency.",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              }
            ]
          }
        },
        "type": "object"
      },
      "output_qbo_customerresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks. If there is an amount in Customer.Balance when setting this Customer object to inactive through the QuickBooks UI, a CreditMemo balancing transaction is created for the amount."
          },
          "AlternatePhone": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber30",
            "description": "Alternate phone number."
          },
          "Balance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create."
          },
          "BalanceWithJobs": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Cumulative open balance amount for the Customer (or Job) and all its sub-jobs. Cannot be written to QuickBooks."
          },
          "BillAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillWithParent": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this Customer object is billed with its parent. If false, or null the customer is not to be billed with its parent. This attribute is valid only if this entity is a Job or sub Customer."
          },
          "CompanyName": {
            "description": "The name of the company associated with the person or organization.",
            "type": "string"
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the currency in which all amounts associated with this customer are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this customer is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency .",
            "readOnly": true
          },
          "CustomerTypeRef": {
            "$ref": "#/components/schemas/output_qbo_customertyperef",
            "description": "Reference to the customer type assigned to a customer. This field is only returned if the customer is assigned a customer type."
          },
          "DefaultTaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a default tax code associated with this Customer object. Reference is valid if Customer.Taxable is set to true; otherwise, it is ignored. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the default tax code is set by the system and can not be overridden. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for DefaultTaxCodeRef.value and DefaultTaxCodeRef.name , respectively."
          },
          "DisplayName": {
            "description": "The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
            "type": "string"
          },
          "FamilyName": {
            "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "Fax": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber30",
            "description": "Fax number."
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the object. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Customer:Job:Sub-job . System generated. Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "GivenName": {
            "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "IsProject": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, indicates this is a Project.",
            "readOnly": true
          },
          "Job": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this is a Job or sub-customer. If false or null, this is a top level customer, not a Job or sub-customer."
          },
          "Level": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be level with respect to the parent. Constraints: up to 5 levels",
            "readOnly": true
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "MiddleName": {
            "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "Mobile": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber30",
            "description": "Mobile phone number."
          },
          "Notes": {
            "description": "Free form text describing the Customer.",
            "type": "string"
          },
          "OpenBalanceDate": {
            "description": "Date of the Open Balance for the create operation. Write-on-create.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Customer object that is the immediate parent of the Sub-Customer/Job in the hierarchical Customer:Job list. Required for the create operation if this object is a sub-customer or Job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this Customer object. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PreferredDeliveryMethod": {
            "description": "Preferred delivery method. Values are Print, Email, or None.",
            "type": "string"
          },
          "PrimaryEmailAddr": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Primary email address."
          },
          "PrimaryPhone": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber30",
            "description": "Primary phone number."
          },
          "PrimaryTaxIdentifier": {
            "description": "Also called Tax Reg. No in ( UK ) , ( CA ) , ( IN ) , ( AU ) represents the tax ID of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
            "type": "string"
          },
          "PrintOnCheckName": {
            "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName. Constraints: Cannot be removed with sparse update.",
            "type": "string"
          },
          "ResaleNum": {
            "description": "Resale number or some additional info about the customer.",
            "type": "string"
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a SalesTerm associated with this Customer object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "SecondaryTaxIdentifier": {
            "description": "Also called UTR No. in ( UK ) , CST Reg No. ( IN ) also represents the tax registration number of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
            "type": "string"
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Default shipping address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "Source": {
            "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
            "type": "string"
          },
          "Suffix": {
            "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionReasonId": {
            "description": "The tax exemption reason associated with this customer object. Applicable if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) for the company. Set TaxExemptionReasonId: to one of the following: Id Reason 1 Federal government 2 State government 3 Local government 4 Tribal government 5 Charitable organization 6 Religious organization 7 Educational organization 8 Hospital 9 Resale 10 Direct pay permit 11 Multiple points of use 12 Direct mail 13 Agricultural production 14 Industrial production / manufacturing 15 Foreign diplomat",
            "type": "string"
          },
          "Taxable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, transactions for this customer are taxable. Default behavior: true, if DefaultTaxCodeRef is defined or false if TaxExemptionReasonId is set."
          },
          "Title": {
            "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "WebAddr": {
            "$ref": "#/components/schemas/output_qbo_websiteaddress",
            "description": "Website address."
          }
        },
        "type": "object"
      },
      "output_qbo_customertyperef": {
        "additionalProperties": true,
        "properties": {
          "value": {
            "description": "The unique numeric Id of the customer type. This maps to the CustomerType entity: CustomerType.Id .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_customertyperesponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates whether this customer type is active in the company or not. true --This customer type is active and enabled for use by QuickBooks. false —This customer type is inactive, is hidden from most display purposes, and is not availble for use with financial transactions."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "The full name of the customer type.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_customextensions": {
        "additionalProperties": true,
        "properties": {
          "AssociatedValues": {
            "$ref": "#/components/schemas/output_qbo_associatedvalues",
            "description": "Array of key/value pairs associated with this extension. For ExtensionType=DIMENSION , each pair maps a dimension definition ( Key ) to a dimension value ( Value )."
          },
          "ExtensionType": {
            "description": "The type of extension applied to the line. Currently supported value: DIMENSION .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_customfield": {
        "additionalProperties": true,
        "properties": {
          "DefinitionId": {
            "description": "Unique identifier of the CustomFieldDefinition that corresponds to this CustomField.",
            "readOnly": true,
            "type": "string"
          },
          "Name": {
            "description": "Name of the custom field.",
            "readOnly": true,
            "type": "string"
          },
          "StringValue": {
            "description": "The value for the StringType custom field.",
            "type": "string"
          },
          "Type": {
            "description": "Data type of custom field. Only one type is currently supported: StringType .",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_customfieldboolpo": {
        "additionalProperties": true,
        "properties": {
          "BooleanValue": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Used to enable the custom field. Set to True to enable the field. Once enabled, it is available on purchase order forms in the QuickBOoks UI and available for QuickBooks services."
          },
          "Name": {
            "description": "The internal name of the custom field. Name takes the form PurchasePrefs.UsePurchaseNameN , where N is 1 , 2 , or 3 for up to three available custom fields.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Value is BooleanType . Denotes this is a custom field enabling object.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_customfieldboolsales": {
        "additionalProperties": true,
        "properties": {
          "BooleanValue": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Used to enable the custom field. Set to True to enable the field. Once enabled, it is available on sales forms in the QuickBOoks UI and available for QuickBooks services."
          },
          "Name": {
            "description": "The internal name of an enabled custom field. Name takes the form SalesFormsPrefs.SalesCustomNameN , where N is 1 , 2 , or 3 for up to three available custom fields.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Value is BooleanType . Denotes this is a custom field enabling object.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_customfieldstringpo": {
        "additionalProperties": true,
        "properties": {
          "Name": {
            "description": "The internal name of an enabled custom field, Name takes the form PurchasePrefs.PurchaseCustomNameN , where N is 1 , 2 , or 3 for up to three available custom fields that have been enabled.",
            "readOnly": true,
            "type": "string"
          },
          "StringValue": {
            "description": "The name of the custom field as it appears on the Purchase Order form.",
            "type": "string"
          },
          "Type": {
            "description": "Denotes that this is a custom field definition. Value is StringType . This type of custom field is available once the field has been enabled with a corresponding CustomField object of type BooleanType .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_customfieldstringsales": {
        "additionalProperties": true,
        "properties": {
          "Name": {
            "description": "The internal name of an enabled custom field, Name takes the form SalesFormsPrefs.SalesCustomNameN , where N is 1 , 2 , or 3 for up to three available custom fields that have been enabled. Use the numeric part, represented by N here, as the CustomField.DefinitionId when configuring custom fields in transactions.",
            "readOnly": true,
            "type": "string"
          },
          "StringValue": {
            "description": "The name of the custom field as it appears on the sales form.",
            "type": "string"
          },
          "Type": {
            "description": "Denotes that this is a custom field definition. Value is StringType . This type of custom field is available once the field has been enabled with a corresponding CustomField object of type BooleanType .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_deliveryinfo": {
        "additionalProperties": true,
        "properties": {
          "DeliveryTime": {
            "description": "Delivery date and time.",
            "readOnly": true,
            "type": "string"
          },
          "DeliveryType": {
            "description": "Type of the delivery. Used to confirm that email has been sent via the send operation. Valid values currently include: Email .",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_departmentresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks. If set to false, this entity is not available."
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Parent:Department1:SubDepartment1:SubDepartment2 . Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the Department.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "The immediate parent of the SubDepartment. Required for the create operation if this object is a SubDepartment. Required if this object is a subdepartment."
          },
          "SubDepartment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies whether this Department object is a SubDepartment. true --SubDepartment. false or null--top-level Department.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_depositline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "DepositLineDetail": {
            "$ref": "#/components/schemas/output_qbo_depositlinedetail"
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to DepositLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          }
        },
        "type": "object"
      },
      "output_qbo_depositlinedetail": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Account where the funds are deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType equals one of the following: Income , Other Income , Expense , Other Expense , Other Current Assets , Equity or COGS . Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively. For France locales: The account associated with the referenced Account object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then this account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "CheckNum": {
            "description": "Check number for the desposit.",
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "Entity": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer from which deposit was received. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for Entity.value and Entity.name , respectively."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "TaxApplicableOn": {
            "description": "Indicates whether the tax applicable on the line is sales or purchase. For Non US Companies. Valid value: Sales , Purchase Required if TaxCodeRef is specified.",
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Sales/Purchase tax code associated with the Line. For Non US Companies. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TxnType": {
            "description": "Type of the payment transaction. For information purposes only.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_depositresponse": {
        "additionalProperties": true,
        "properties": {
          "CashBack": {
            "$ref": "#/components/schemas/output_qbo_cashbackinfo"
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_linelinkedtxn"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_depositline"
                }
              ]
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "type": "object"
      },
      "output_qbo_descriptiononly": {
        "additionalProperties": true,
        "properties": {
          "ServiceDate": {
            "description": "Date when the service is performed.",
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          }
        },
        "type": "object"
      },
      "output_qbo_descriptiononlyline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item. Available when Amount is set via the QuickBooks UI. Returned only for Description Only line items that have a non-empty amount associated with them.",
            "readOnly": true
          },
          "Description": {
            "description": "A string representing one of the following: Free form text description of the line item that appears in the printed record. A subtotal line inline with other lines on the sales form and holds the sum of amounts on all lines above it. This is distinct from the overall transaction subtotal represented with a SubTotal detail line. In create requests, set to Subtotal: (case sensitive) to create the subtotal line; the amount is generated by QuickBooks Online business logic. In read requests, lines with Subtotal: nn.nn returned in this field denote subtotal lines in the object.",
            "type": "string"
          },
          "DescriptionLineDetail": {
            "$ref": "#/components/schemas/output_qbo_descriptiononly"
          },
          "DetailType": {
            "description": "Set to DescriptionOnly for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the transaction, the request is considered an update operation for the description line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the transaction then the request is considered a create operation for the description line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          }
        },
        "type": "object"
      },
      "output_qbo_discountline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to DiscountLineDetail for this type of line.",
            "type": "string"
          },
          "DiscountLineDetail": {
            "$ref": "#/components/schemas/output_qbo_discountlinedetail",
            "description": "Discount detail type for the entire transaction. This is in contrast to a discount applied to a specific line. The company preference Sales Form Entry | Discounts must be enabled for this type of line to be available. Must be enabled for this type of line to be available."
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation. Not supported for BillPayment, Estimate, Invoice, or Payment objects.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          }
        },
        "type": "object"
      },
      "output_qbo_discountlinedetail": {
        "additionalProperties": true,
        "properties": {
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with this discount. Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "DiscountAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Income account used to track discounts. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType=Income and Account.AccountSubType=DiscountsRefundsGiven . Use Account.Id and Account.Name from that object for DiscountAccountRef.value and DiscountAccountRef.name , respectively."
          },
          "DiscountPercent": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Percentage by which the amount due is reduced, from 0% to 100%. To enter a discount of 8.5% use 8.5, not 0.085."
          },
          "PercentBased": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "True if the discount is a percentage; null or false if discount based on amount."
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "The TaxCode associated with the sales tax for the expense. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          }
        },
        "type": "object"
      },
      "output_qbo_effectivetaxratedata": {
        "additionalProperties": true,
        "properties": {
          "EffectiveDate": {
            "description": "Effective starting date for which this taxrate is applicable: YYYY-MM-DDTHH:MM:SS UTC: YYYY-MM-DD T HH :MM: SS Z Specific time zone: YYYY-MM-DD T HH :MM:SS +/- HH :MM",
            "type": "string"
          },
          "EndDate": {
            "description": "End date of this taxrate applicability: YYYY-MM-DDTHH:MM:SS UTC: YYYY-MM-DD T HH :MM: SS Z Specific time zone: YYYY-MM-DD T HH :MM:SS +/- HH :MM",
            "type": "string"
          },
          "RateValue": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Represents rate value."
          }
        },
        "type": "object"
      },
      "output_qbo_emailaddress": {
        "additionalProperties": true,
        "properties": {
          "Address": {
            "description": "An email address. The address format must follow the RFC 822 standard.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_emailmessagesprefs": {
        "additionalProperties": true,
        "properties": {
          "EstimateMessage": {
            "$ref": "#/components/schemas/output_qbo_emailmessagetype",
            "description": "Email message details for Estimate."
          },
          "InvoiceMessage": {
            "$ref": "#/components/schemas/output_qbo_emailmessagetype",
            "description": "Email message details for Invoice."
          },
          "SalesReceiptMessage": {
            "$ref": "#/components/schemas/output_qbo_emailmessagetype",
            "description": "Email message details for SalesReceipt."
          },
          "StatementMessage": {
            "$ref": "#/components/schemas/output_qbo_emailmessagetype",
            "description": "Email message details for Statement."
          }
        },
        "type": "object"
      },
      "output_qbo_emailmessagetype": {
        "additionalProperties": true,
        "properties": {
          "Message": {
            "description": "The body of the email message.",
            "type": "string"
          },
          "Subject": {
            "description": "The subject of the email.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_employeeresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "BillRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "This attribute can only be set if BillableTime is true. Not supported when QuickBooks Payroll is enabled."
          },
          "BillableTime": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "BirthDate": {
            "description": "Birth date of the employee.",
            "type": "string"
          },
          "CostRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Pay rate of the employee"
          },
          "DisplayName": {
            "description": "The name of the person or organization as displayed. Default Value: If not supplied, the system generates DisplayName by concatenating employee name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix . When QuickBooks Payroll is enabled, this attribute is read-only and a concatenation of GivenName , MiddleName , and FamilyName .",
            "type": "string"
          },
          "EmployeeNumber": {
            "description": "Specifies the ID number of the employee in the employer's directory.",
            "type": "string"
          },
          "FamilyName": {
            "description": "Family name or the last name of the person. At least one of GivenName or FamilyName attributes is required.",
            "type": "string"
          },
          "Gender": {
            "description": "Gender of the employee. To clear the gender value, set to Null in a full update request. Supported values include: Male or Female .",
            "type": "string"
          },
          "GivenName": {
            "description": "Given name or family name of a person. At least one of GivenName or FamilyName attributes is required.",
            "type": "string"
          },
          "HiredDate": {
            "description": "Hire date of the employee.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "MiddleName": {
            "description": "Middle name of the person. The person can have zero or more middle names.",
            "type": "string"
          },
          "Mobile": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber",
            "description": "Mobile phone number."
          },
          "Organization": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "true --the object represents an organization. false --the object represents a person."
          },
          "PrimaryAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Represents the physical street address for this employee. If QuickBooks Payroll is enabled for the company, the following PhysicalAddress fields are required: City , maximum of 255 chars CountrySubDivisionCode , maximum of 255 chars PostalCode Required when QuickBooks Payroll is enabled. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "PrimaryEmailAddr": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Primary email address."
          },
          "PrimaryPhone": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber",
            "description": "Primary phone number."
          },
          "PrintOnCheckName": {
            "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update. Not supported when QuickBooks Payroll is enabled.",
            "type": "string"
          },
          "ReleasedDate": {
            "description": "Release date of the employee.",
            "type": "string"
          },
          "SSN": {
            "description": "Social security number (SSN) of the employee. If SSN is set, it is masked in the response with XXX-XX-XXXX. If XXX-XX-XXXX is sent in the create or update request, XXX-XX-XXXX is ignored and the old value is preserved. This attribute cannot be passed in a request when QuickBooks Payroll is enabled. Code for this field must be removed before submitting.",
            "type": "string"
          },
          "Suffix": {
            "description": "Suffix of the name. For example, Jr . Not supported when QuickBooks Payroll is enabled.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Title": {
            "description": "Title of the person. This tag supports i18n, all locale. Not supported when QuickBooks Payroll is enabled.",
            "type": "string"
          },
          "V4IDPseudonym": {
            "description": "Employee reference number. For internal use only.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_entity": {
        "additionalProperties": true,
        "properties": {
          "EntityRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Query the corresponding name list resource as specified by Entity to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively."
          },
          "Type": {
            "description": "Object type. Output only. Valid values are Vendor , Employee , or Customer .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_estimateresponse": {
        "additionalProperties": true,
        "properties": {
          "AcceptedBy": {
            "description": "Name of customer who accepted the estimate.",
            "type": "string"
          },
          "AcceptedDate": {
            "description": "Date estimate was accepted.",
            "type": "string"
          },
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
          },
          "BillAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/output_qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "ExpirationDate": {
            "description": "Date by which estimate must be accepted before invalidation.",
            "type": "string"
          },
          "FreeFormAddress": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
          },
          "GlobalTaxCalculation": {
            "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipDate": {
            "description": "Date for delivery of goods or services.",
            "type": "string"
          },
          "ShipFromAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnStatus": {
            "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "type": "object"
      },
      "output_qbo_exchangerateresponse": {
        "additionalProperties": true,
        "properties": {
          "AsOfDate": {
            "description": "Date on which this exchange rate was set.",
            "type": "string"
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Rate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The exchange rate between SourceCurrencyCode and TargetCurrencyCode on the AsOfDate date."
          },
          "SourceCurrencyCode": {
            "description": "The source currency from which the exchange rate is specified, and usually. Specify as a three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. For example, in the equation 65 INR = 1 USD , INR is the source currency.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TargetCurrencyCode": {
            "description": "The target currency against which the exchange rate is specified. Specify as a three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. For example, in the equation 65 INR = 1 USD , USA is the target currency.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_groupline": {
        "additionalProperties": true,
        "properties": {
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to GroupLineDetail for this type of line.",
            "type": "string"
          },
          "GroupLineDetail": {
            "$ref": "#/components/schemas/output_qbo_grouplinedetail"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          }
        },
        "type": "object"
      },
      "output_qbo_grouplinedetail": {
        "additionalProperties": true,
        "properties": {
          "GroupItemRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a group item for all the lines that belong to the bundle. Query the Item name list resource to determine the appropriate Item group object ( Item.Type=Group ) for this reference. Use Item.Id and Item.Name from that object for GroupItemRef.value and GroupItemRef.name , respectively."
          },
          "Line": {
            "description": "Individual ItemLine elements that comprise a bundle. Returned in responses.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_salesitemline"
            },
            "type": "array"
          },
          "Quantity": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Quantity of the group item."
          }
        },
        "type": "object"
      },
      "output_qbo_inventoryadjustmentresponse": {
        "additionalProperties": true,
        "properties": {
          "AdjustAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively.",
            "readOnly": true
          },
          "DocNumber": {
            "description": "Reference number for the transaction.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of an inventory adjustment.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_itemadjustmentline"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_invoiceresponse": {
        "additionalProperties": true,
        "properties": {
          "AllowIPNPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
          },
          "AllowOnlineACHPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
          },
          "AllowOnlineAffirmPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
          },
          "AllowOnlineCreditCardPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
          },
          "AllowOnlinePayPalPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
          },
          "AllowOnlinePayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
          },
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
          },
          "Balance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "BillEmailBcc": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
          },
          "BillEmailCc": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/output_qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DeliveryInfo": {
            "$ref": "#/components/schemas/output_qbo_deliveryinfo",
            "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
            "readOnly": true
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "Deposit": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The deposit made towards this invoice."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "FreeFormAddress": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "InvoiceLink": {
            "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipDate": {
            "description": "Date for delivery of goods or services.",
            "type": "string"
          },
          "ShipFromAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/output_qbo_referencetype",
                "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                "readOnly": true
              },
              {
                "type": "object"
              }
            ]
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TrackingNum": {
            "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
            "type": "string"
          },
          "TransactionLocationType": {
            "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "type": "object"
      },
      "output_qbo_itemadjustmentline": {
        "additionalProperties": true,
        "properties": {
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "DetailType": {
            "description": "Set to ItemAdjustmentLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "ItemAdjustmentLineDetail": {
            "$ref": "#/components/schemas/output_qbo_itemadjustmentlinedetail",
            "description": "Details for the line in the inventory adjustment."
          }
        },
        "type": "object"
      },
      "output_qbo_itemadjustmentlinedetail": {
        "additionalProperties": true,
        "properties": {
          "ItemRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to an Item object. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively."
          },
          "QtyDiff": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Change in quantity. Set it to a positive number for incrementing and a negative number if for decrementing the quantity."
          }
        },
        "type": "object"
      },
      "output_qbo_itembasedexpenseline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to ItemBasedExpenseLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "ItemBasedExpenseLineDetail": {
            "$ref": "#/components/schemas/output_qbo_itembasedexpenselinedetail"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_itembasedexpenselinebill": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to ItemBasedExpenseLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "ItemBasedExpenseLineDetail": {
            "$ref": "#/components/schemas/output_qbo_itembasedexpenselinedetail"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to PurchaseOrder or it can also be set to ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction. When updating an existing Bill to link to a PurchaseOrder a new Line must be created. This behavior matches the QuickBooks UI as it does not allow the linking of an existing line, but rather a new line must be added to link the PurchaseOrder. Over the API this is achieved by simply updating the Bill Line.Id to something new. This will ensure old bill line is deleted and the new line is linked to the PurchaseOrder. Be aware that for this PurchaseOrder-Bill linking to work all LinkedTxn child attributes are required. See child attributes below.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_itembasedexpenselinedetail": {
        "additionalProperties": true,
        "properties": {
          "BillableStatus": {
            "description": "The billable status of the expense. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled",
            "readOnly": true,
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the expense. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "ItemRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Item. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. When a line lacks an ItemRef it is treated as documentation and the Line.Amount attribute is ignored. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "MarkupInfo": {
            "$ref": "#/components/schemas/output_qbo_markupinfo",
            "description": "Markup information for the expense."
          },
          "PriceLevelRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the PriceLevel of the service or item for the line. Support for this element will be available in the coming months."
          },
          "Qty": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Number of items for the line."
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TaxInclusiveAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The total amount of the line item including tax."
          },
          "UnitPrice": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Unit price of the subject item as referenced by ItemRef . Corresponds to the Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
          }
        },
        "type": "object"
      },
      "output_qbo_itemresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, the object is currently enabled for use by QuickBooks."
          },
          "AssetAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Description of the item.",
            "type": "string"
          },
          "ExpenseAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. Required for Inventory , NonInventory , and Service item types."
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Item:SubItem . Returned from an existing object and not input on a new object.Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "IncomeAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. Required for Inventory and Service item types."
          },
          "InvStartDate": {
            "description": "Date of opening balance for the inventory transaction. For read operations, the date returned in this field is always the originally provided inventory start date. For update operations, the date supplied is interpreted as the inventory adjust date, is stored as such in the underlying data model, and is reflected in the QuickBooks Online UI for the object. The inventory adjust date is not exposed for read operations through the API. Required for Inventory type items.",
            "type": "string"
          },
          "Level": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be the next level with respect to the parent. Limited to 5 levels.",
            "readOnly": true
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "Name of the item. This value is unique.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "The immediate parent of the sub item in the hierarchical Item:SubItem list. If SubItem is true, then ParenRef is required. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "PrefVendorRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "PurchaseCost": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
          },
          "PurchaseDesc": {
            "description": "Purchase description for the item.",
            "type": "string"
          },
          "PurchaseTaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
          },
          "PurchaseTaxIncluded": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
          },
          "QtyOnHand": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
          },
          "ReorderPoint": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
          },
          "SalesTaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
          },
          "SalesTaxIncluded": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
          },
          "Sku": {
            "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
            "type": "string"
          },
          "Source": {
            "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
            "type": "string"
          },
          "SubItem": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this is a sub item. If false or null, this is a top-level item. Creating inventory hierarchies with traditional inventory items is being phased out in lieu of using categories and sub categories."
          },
          "SyncToken": {
            "description": "Version number of the entity. Required for the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "TaxClassificationRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
          },
          "Taxable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
          },
          "TrackQtyOnHand": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
          },
          "Type": {
            "description": "Classification that specifies the use of this item. See the description at the top of the Item entity page for details about supported item types. This field is required to be explicitly set with one of the following: Inventory --Used for goods the company sells and buys that are tracked as inventory. Service --Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. NonInventory --Use for goods the company sells and buys that are not tracked as inventory. For example, office supplies or goods bought on behalf of the customer. .",
            "type": "string"
          },
          "UnitPrice": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
          }
        },
        "type": "object"
      },
      "output_qbo_journalentryline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to JournalEntryLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. In requests, if Id matches that for an existing line in the transaction the line is updated. Otherwise, a new line is created. Integer as string.",
            "readOnly": true,
            "type": "string"
          },
          "JournalEntryLineDetail": {
            "$ref": "#/components/schemas/output_qbo_journalentrylinedetail"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          }
        },
        "type": "object"
      },
      "output_qbo_journalentrylinedetail": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the account associated with this line. Query the Account name list resource to determine the appropriate Account object for this reference, based on the side of the journal entry represented by this line. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
          },
          "BillableStatus": {
            "description": "The billable status of the journal entry line. The line is to be billed to a customer if the account is an expense account and EntityRef specifies a Customer object. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled",
            "readOnly": true,
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "Entity": {
            "$ref": "#/components/schemas/output_qbo_entity",
            "description": "When you use Accounts Receivable , you must choose a customer in the Name field. When you use Accounts Payable , you must choose a supplier/vendor in the Name field."
          },
          "PostingType": {
            "description": "Indicates whether this JournalEntry line is a debit or credit. Valid values: Credit , Debit",
            "type": "string"
          },
          "TaxAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Tax amount of the line."
          },
          "TaxApplicableOn": {
            "description": "Indicates whether the tax applicable on the line is sales or purchase. Valid value: Sales , Purchase . Required if TaxCodeRef is specified",
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TaxInclusiveAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The total amount of the line items including tax."
          }
        },
        "type": "object"
      },
      "output_qbo_journalentryresponse": {
        "additionalProperties": true,
        "properties": {
          "Adjustment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates whether this transaction is a journal entry adjustment."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "DocNumber": {
            "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_journalentryline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_descriptiononlyline"
                }
              ]
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxRateRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "type": "object"
      },
      "output_qbo_linelinkedtxn": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "LinkedTxn": {
            "description": "Transaction to which the current entity is related. For example, a billpayment line links to the originating bill object for which the billpayment is applied.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_linkedtxn": {
        "additionalProperties": true,
        "properties": {
          "TxnId": {
            "description": "Transaction Id of the related transaction.",
            "type": "string"
          },
          "TxnLineId": {
            "description": "Required for Deposit and Bill entities. The line number of a specific line of the linked transaction. If supplied, the TxnId and TxnType attributes of the linked transaction must also be populated.",
            "type": "string"
          },
          "TxnType": {
            "description": "Transaction type of the linked object.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_markupinfo": {
        "additionalProperties": true,
        "properties": {
          "MarkUpIncomeAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "The account associated with the markup. Available with invoice objects, only, and when linktxn specified a ReimburseCharge .",
            "readOnly": true
          },
          "Percent": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Markup amount expressed as a percent of charges already entered in the current transaction. To enter a rate of 10% use 10.0, not 0.01."
          },
          "PriceLevelRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a PriceLevel for the markup. Support for this element will be available in the coming months."
          }
        },
        "type": "object"
      },
      "output_qbo_memoref": {
        "additionalProperties": true,
        "properties": {
          "value": {
            "description": "User-entered message to the customer; this message is visible to the end user on their transactions.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_modificationmetadata": {
        "additionalProperties": true,
        "properties": {
          "CreateTime": {
            "description": "Time the entity was created in the source domain.",
            "readOnly": true,
            "type": "string"
          },
          "LastUpdatedTime": {
            "description": "Time the entity was last updated in the source domain.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_paymentmethodresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the payment method.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Defines the type of payment. Valid values include CREDIT_CARD or NON_CREDIT_CARD .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_paymentresponse": {
        "additionalProperties": true,
        "properties": {
          "CreditCardPayment": {
            "$ref": "#/components/schemas/output_qbo_creditcardpayment",
            "description": "Information about a payment received by credit card. Inject with data only if the payment was transacted through Intuit Payments API."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Identifies the account to be used for this payment. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Zero or more transactions accounting for this payment. Values for Line.LinkedTxn.TxnType can be one of the following: Expense --Payment is reimbursement for expense paid by cash made on behalf of the customer Check --Payment is reimbursement for expense paid by check made on behalf of the customer CreditCardCredit --Payment is reimbursement for a credit card credit made on behalf of the customer JournalEntry --Payment is linked to the representative journal entry CreditMemo --Payment is linked to the credit memo the customer has with the business Invoice --The invoice to which payment is applied Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linelinkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PaymentRefNum": {
            "description": "The reference number for the payment received. For example, Check # for a check, envelope # for a cash donation.",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O."
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "UnappliedAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the amount that has not been applied to pay amounts owed for sales transactions.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "output_qbo_physicaladdress": {
        "additionalProperties": true,
        "properties": {
          "City": {
            "description": "City name.",
            "type": "string"
          },
          "Country": {
            "description": "For international addresses, the request can be an ISO alpha-3 code or the full name of the country. The response for update and read operations returns ISO alpha-3 country codes only.",
            "type": "string"
          },
          "CountrySubDivisionCode": {
            "description": "Region within a country. For example, state name for USA, province name for Canada.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier of the QuickBooks object for the address, autoincremented when the address is changed. This is an internal value included for backwards compatibility and can be ignored.",
            "readOnly": true,
            "type": "string"
          },
          "Line1": {
            "description": "First line of the address.",
            "type": "string"
          },
          "Line2": {
            "description": "Second line of the address.",
            "type": "string"
          },
          "Line3": {
            "description": "Third line of the address.",
            "type": "string"
          },
          "Line4": {
            "description": "Fourth line of the address.",
            "type": "string"
          },
          "Line5": {
            "description": "Fifth line of the address.",
            "type": "string"
          },
          "PostalCode": {
            "description": "Postal code. For example, zip code for USA and Canada",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_preferencesresponse": {
        "additionalProperties": true,
        "properties": {
          "AccountingInfoPrefs": {
            "$ref": "#/components/schemas/output_qbo_accountinginfoprefs",
            "description": "The following settings are available for QuickBooks Online Plus editions, only. To determine this edition type, query the value of the OfferingSku CustomerInfo.Name name/value pair for QuickBooks Online Plus ."
          },
          "CurrencyPrefs": {
            "$ref": "#/components/schemas/output_qbo_currencyprefs"
          },
          "EmailMessagesPrefs": {
            "$ref": "#/components/schemas/output_qbo_emailmessagesprefs"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "OtherPrefs": {
            "additionalProperties": true,
            "description": "Specifies extension of Preference resource to allow extension of Name-Value pair based extension at the top level.",
            "type": "object"
          },
          "ProductAndServicesPrefs": {
            "$ref": "#/components/schemas/output_qbo_productandservicesprefs"
          },
          "ReportPrefs": {
            "$ref": "#/components/schemas/output_qbo_reportprefs"
          },
          "SalesFormsPrefs": {
            "$ref": "#/components/schemas/output_qbo_salesformspref"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxPrefs": {
            "$ref": "#/components/schemas/output_qbo_taxprefs"
          },
          "TimeTrackingPrefs": {
            "$ref": "#/components/schemas/output_qbo_timetrackingprefs"
          },
          "VendorAndPurchasesPrefs": {
            "$ref": "#/components/schemas/output_qbo_vendorandpurchaseprefs"
          }
        },
        "type": "object"
      },
      "output_qbo_productandservicesprefs": {
        "additionalProperties": true,
        "properties": {
          "ForPurchase": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Product and Services for Purchase enabled."
          },
          "ForSales": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Product and Services for Sales enabled."
          },
          "QuantityOnHand": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Quantity on hand enabled."
          },
          "QuantityWithPriceAndRate": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Quantity with price and rate enabled."
          },
          "RecognitionFrequencyType": {
            "description": "Indicates how frequently revenue is recognised.Possible values are Daily, Weekly, Monthly.(QBO Advanced only)",
            "type": "string"
          },
          "RevenueRecognitionEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Revenue recognition enabled.(QBO Advanced only)"
          }
        },
        "type": "object"
      },
      "output_qbo_profitandlossdetailquery": {
        "additionalProperties": true,
        "properties": {
          "account": {
            "description": "(source_account_type) Filters report contents to include information for specified accounts. Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id , of the Account object response code.",
            "type": "string"
          },
          "account_type": {
            "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
            "type": "string"
          },
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "adjusted_gain_loss": {
            "description": "Specifies whether unrealized gain and losses are included in the report. Supported Values: true , false",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: create_by, create_date, doc_num*, last_mod_by, last_mod_date, memo*, name*, pmt_mthd, split_acc*, tx_date*, txn_type* Additional columns with tax enabled: tax_code Additional columns with class tracking enabled: klass_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . NonTracking status is enabled for the company if CompanyInfo.NameValue.Name.NonTracking is set to true . Currently enabled for Canadian company, other locales can be added in the future.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "employee": {
            "description": "Filters report contents to include information for specified employees. Supported Values: One or more comma separated account IDs as returned in the attribute, Employee.Id , of the Employee entity response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "payment_method": {
            "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_profitandlossreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/output_qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_profitandlossreporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/output_qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/output_qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/output_qbo_profitandlossreportrows",
            "description": "Top level container holding information for profit and loss report rows."
          }
        },
        "type": "object"
      },
      "output_qbo_purchaseorderresponse": {
        "additionalProperties": true,
        "properties": {
          "APAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the purchase order. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_itembasedexpenseline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_accountbasedexpenseline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more Bill objects linked to this purchase order; LinkedTxn.TxnType is set to Bill . To retrieve details of a linked Bill transaction, issue a separate request to read the Bill whose ID is linkedTxn.TxnId .",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "Memo": {
            "description": "A message for the vendor. This text appears on the Purchase Order object sent to the vendor.",
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "POEmail": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Used to specify the vendor e-mail address where the purchase req is sent."
          },
          "POStatus": {
            "description": "Purchase order status. Valid values are: Open and Closed .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the purchase order to the vendor. This field maps to the Memo field on the Purchase Order form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the PurchaseOrder was created from.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Address to which the vendor shipped or will ship any goods associated with the purchase. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the user-defined ShipMethod associated with the transaction. Store shipping method string in both ShipMethodRef.value and ShipMethodRef.name ."
          },
          "ShipTo": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the customer to whose shipping address the order will be shipped to."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          },
          "VendorAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Address to which the payment should be sent. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "VendorRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "type": "object"
      },
      "output_qbo_purchaseresponse": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies the account reference to which this purchase is applied based on the PaymentType . A type of Check should have bank account, CreditCard should specify credit card account, etc. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
          },
          "Credit": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "EntityRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "IncludeInAnnualTPAR": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include ItemBasedExpenseLine (Available if Preferences.ProductAndServicesPrefs.ForPurchase is set to true ) and AccountBasedExpenseLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_itembasedexpenseline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_accountbasedexpenseline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PaymentType": {
            "description": "Type can be Cash , Check , or CreditCard .",
            "type": "string"
          },
          "PrintStatus": {
            "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
            "type": "string"
          },
          "PurchaseEx": {
            "additionalProperties": true,
            "description": "For internal use.",
            "type": "object"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
            "readOnly": true
          },
          "RemitToAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "type": "object"
      },
      "output_qbo_referencetype": {
        "additionalProperties": true,
        "properties": {
          "name": {
            "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.",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              }
            ]
          }
        },
        "type": "object"
      },
      "output_qbo_refundreceiptresponse": {
        "additionalProperties": true,
        "properties": {
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
          },
          "Balance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "CheckPayment": {
            "$ref": "#/components/schemas/output_qbo_checkpayment",
            "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CreditCardPayment": {
            "$ref": "#/components/schemas/output_qbo_creditcardpayment",
            "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/output_qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transaction."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only)",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PaymentRefNum": {
            "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
            "type": "string"
          },
          "PaymentType": {
            "description": "Valid values are Cash , Check , CreditCard , or Other .",
            "type": "string"
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
            "readOnly": true
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "type": "object"
      },
      "output_qbo_reimbursechargeline": {
        "additionalProperties": true,
        "properties": {
          "DetailType": {
            "description": "Set this to ReimburseLineDetail.",
            "type": "string"
          },
          "LineId": {
            "description": "The line Id for the line. This will be used to link it to the invoice.",
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "LinkedTxn": {
            "description": "List of LinkedTxn objects. This will contain the Invoice linked transaction if the ReimburseCharge has been linked to an Invoice.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "ReimburseLineDetail": {
            "$ref": "#/components/schemas/output_qbo_discountlinedetail",
            "description": "Reimburse charge details for the line."
          }
        },
        "type": "object"
      },
      "output_qbo_reimbursechargeresponse": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "HasBeenInvoiced": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Boolean indicating whether the reimbursable charge has been linked to an Invoice."
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "items": {
              "$ref": "#/components/schemas/output_qbo_reimbursechargeline"
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "The LinkedTxn will contain the Invoice Id if the ReimburseCharge has been linked with an Invoice.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_reportcolumn": {
        "additionalProperties": true,
        "properties": {
          "ColTitle": {
            "description": "The column label. This string appears at the top of the column. If not defined, the column does not have a label. The value of this attribute is localized.",
            "type": "string"
          },
          "ColType": {
            "description": "The type of information found in the column. Possible values include: Account —This column in the row represents an account for the row item. The row further defines the specific account. Money —This column in the row represents an amount for the row item.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_reportcolumns": {
        "additionalProperties": true,
        "properties": {
          "Column": {
            "description": "Container for an individual report column definition.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_reportcolumn"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_reportheader": {
        "additionalProperties": true,
        "properties": {
          "Class": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Currency": {
            "description": "A string containing the currency code associated with the report.",
            "type": "string"
          },
          "Customer": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Department": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Employee": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "EndPeriod": {
            "description": "The date specified by the end_date query parameter submitted with the request. Format is yyyy-mm-dd .",
            "type": "string"
          },
          "Item": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Option": {
            "items": {
              "$ref": "#/components/schemas/output_qbo_reportoption",
              "description": "Container for one or more name/value pairs that return additional information about the report contents."
            },
            "type": "array"
          },
          "ReportBasis": {
            "description": "Accounting method. Possible values include Cash and Accrual .",
            "type": "string"
          },
          "ReportName": {
            "description": "Name of the report.",
            "type": "string"
          },
          "StartPeriod": {
            "description": "The date specified by the start_date query parameter submitted with the request. Format is yyyy-mm-dd .",
            "type": "string"
          },
          "SummarizeColumnsBy": {
            "description": "The method by which report columns are organized. This contains the value specified by the summarize_column_by query parameter submitted with the request.",
            "type": "string"
          },
          "Time": {
            "description": "Date and timestamp of the report.",
            "type": "string"
          },
          "Vendor": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_reportoption": {
        "additionalProperties": true,
        "properties": {
          "name": {
            "description": "Supported Names: AccountingStandard —Indicates the accounting standard being used for this report. Returned with ProfitAndLoss and BalanceSheet reports, only. NoReportData —Used to signal whether report contains data. If true , report contains no data. If false , report contains data. Returned for every report type.",
            "type": "string"
          },
          "value": {
            "description": "The value of the parameter, as passed in with the report endpoint URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_reportprefs": {
        "additionalProperties": true,
        "properties": {
          "CalcAgingReportFromTxnDate": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Calculation aging from transaction date",
            "readOnly": true
          },
          "ReportBasis": {
            "description": "Accounting method for summary. Possible values include Cash and Accrual .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_reportrow": {
        "additionalProperties": true,
        "properties": {
          "ColData": {
            "items": {
              "additionalProperties": true,
              "description": "Information for each column of a leaf row Row type=Data . There must be a ColData definition for each column defined in the Columns section. Parameters: id —The reference id of the entity as returned in the Id entity field. Returned where applicable. value —The value for column. The type of value is based on the column type. href —The link to the quick zoom data for this cell, available when the report endpoint specifies the qzurl query parameter. The qzurl query parameter is supported on a report by report basis; check the list of query parameters for the specific report to determine support. The value of the parameter is localized.",
              "type": "object"
            },
            "type": "array"
          },
          "Header": {
            "additionalProperties": true,
            "description": "Header row for the report section.",
            "type": "object"
          },
          "Rows": {
            "additionalProperties": true,
            "description": "Container for one or more leaf rows.",
            "type": "object"
          },
          "Summary": {
            "additionalProperties": true,
            "description": "Summary row for a report section. It is the cumulative total amount of money in the account, including the sub accounts.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "output_qbo_reportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section . Possible values include: Income , COGS , GrossProfit , Expenses , NetOperatingIncome , OtherIncome , OtherExpenses , NetOtherIncome , NetIncome",
            "items": {
              "$ref": "#/components/schemas/output_qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_reporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/output_qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/output_qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/output_qbo_reportrows",
            "description": "Top level container holding information for report rows."
          }
        },
        "type": "object"
      },
      "output_qbo_salesformspref": {
        "additionalProperties": true,
        "properties": {
          "AllowDeposit": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables specifying Deposit."
          },
          "AllowDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables specifying Discount."
          },
          "AllowEstimates": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables specifying Estimates."
          },
          "AllowServiceDate": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables specifying service date."
          },
          "AllowShipping": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables specifying shipping info."
          },
          "AutoApplyCredit": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Automatically applies credits to the next invoice you create for the same customer. Most companies turn on this setting.",
            "readOnly": true
          },
          "CustomField": {
            "items": {
              "additionalProperties": true,
              "properties": {
                "CustomField": {
                  "items": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/output_qbo_customfieldboolsales"
                      },
                      {
                        "$ref": "#/components/schemas/output_qbo_customfieldstringsales"
                      }
                    ]
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "CustomTxnNumbers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables the ability to specify custom transaction numbers for sales transactions."
          },
          "DefaultCustomerMessage": {
            "description": "Default customer message.",
            "type": "string"
          },
          "DefaultDiscountAccount": {
            "type": "string"
          },
          "DefaultShippingAccount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Default shipping account."
          },
          "DefaultTerms": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Default sales terms."
          },
          "ETransactionAttachPDF": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies whether sales form PDF should be attached with ETransaction mails."
          },
          "ETransactionEnabledStatus": {
            "description": "Enables ETransaction status.",
            "readOnly": true,
            "type": "string"
          },
          "ETransactionPaymentEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables ETransaction payment."
          },
          "EmailCopyToCompany": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If set to true, the QuickBooks company is cc'ed on all email sent to customers for sales transactions. Email used is that defined with CompanyInfo.Email.Address ."
          },
          "EstimateMessage": {
            "description": "Message to the customers on estimates.",
            "readOnly": true,
            "type": "string"
          },
          "IPNSupportEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "IPN support enabled. No longer used and is being deprecated.",
            "readOnly": true
          },
          "SalesEmailBcc": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Default blind carbon copy email address where invoices are sent. Override this setting with the Invoice.BillEmailBcc attribute. Max 200 characters. Ignored if address is invalid."
          },
          "SalesEmailCc": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Default carbon copy email address where invoices are sent. Override this setting with the Invoice.BillEmailCc attribute. Max 200 characters. Ignored if address is invalid."
          },
          "UsingPriceLevels": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If set to true, price levels are enabled for sales transactions. Full price level support available via QuickBooks UI, only, in April 2017.",
            "readOnly": true
          },
          "UsingProgressInvoicing": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables Progress Invoicing",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "output_qbo_salesitemline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item. For Invoice objects in global locales: when updating Amount , remove the TxnTaxDetail element in the object before submitting it in the update request payload."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/output_qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to SalesItemLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "SalesItemLineDetail": {
            "$ref": "#/components/schemas/output_qbo_salesitemlinedetail"
          }
        },
        "type": "object"
      },
      "output_qbo_salesitemlinedetail": {
        "additionalProperties": true,
        "properties": {
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class for the line item. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "ItemAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Available with invoice objects, only, and when there is a linkedtxn of type ReimburseCharge for this object. When ItemRef.Id is set to 1, ItemAccountRef maps to the reimbursable charge account."
          },
          "ItemRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to an Item object. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. Set ItemRef.value to SHIPPING_ITEM_ID when Line.amount represents transaction-wide shipping charges. Valid when Preferences.SalesFormsPrefs.AllowShipping is set to true . Set ItemRef.value to GRATUITY_ITEM_ID when Line.amount represents transaction-wide gratuity amount. Valid when Preferences.OtherPrefs.Name.SalesFormsPrefs.AllowGratuity is set to true . When a line lacks an ItemRef it is treated as documentation and the Line.Amount attribute is ignored. Applicable to invoice objects, only, and when linktxn specifies a ReimburseCharge . When Item.Id is set to 1, ItemAccountRef refers to reimburse expense account Id."
          },
          "MarkupInfo": {
            "$ref": "#/components/schemas/output_qbo_markupinfo",
            "description": "Used to define markup when this line represents a billable expense on the invoice. Markup information for the billable expense line."
          },
          "Qty": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Number of items for the line."
          },
          "ServiceDate": {
            "description": "Date when the service is performed.",
            "type": "string"
          },
          "TaxClassificationRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the TaxClassification for this item. Available for companies that have automated sales tax enabled. TaxClassificationRef.Name : Currently not populated. TaxClassificationRef.value : The system-defined Tax Classification code that is applied to this line item. For internal use only.",
            "readOnly": true
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TaxInclusiveAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The total amount of the line item including tax."
          },
          "UnitPrice": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Unit price of the subject item as referenced by ItemRef . Corresponds to the Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. You can override the unit price of the subject item by supplying a new value with create or update operations. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
          }
        },
        "type": "object"
      },
      "output_qbo_salesreceiptresponse": {
        "additionalProperties": true,
        "properties": {
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
          },
          "Balance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CreditCardPayment": {
            "$ref": "#/components/schemas/output_qbo_creditcardpayment",
            "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/output_qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DeliveryInfo": {
            "$ref": "#/components/schemas/output_qbo_deliveryinfo",
            "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
            "readOnly": true
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "FreeFormAddress": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PaymentRefNum": {
            "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
            "type": "string"
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
            "readOnly": true
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipDate": {
            "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
            "type": "string"
          },
          "ShipFromAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
            "readOnly": true
          },
          "TrackingNum": {
            "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/output_qbo_txntaxdetail",
            "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "type": "object"
      },
      "output_qbo_subtotalline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to SubTotalLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "SubTotalLineDetail": {
            "$ref": "#/components/schemas/output_qbo_subtotallinedetail",
            "description": "Subtotal LineDetail"
          }
        },
        "type": "object"
      },
      "output_qbo_subtotallinedetail": {
        "additionalProperties": true,
        "properties": {
          "ItemRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Item. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. When a line lacks an ItemRef it is treated as documentation and the Line.Amount attribute is ignored. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          }
        },
        "type": "object"
      },
      "output_qbo_taxagencyresponse": {
        "additionalProperties": true,
        "properties": {
          "DisplayName": {
            "description": "Name of the agency.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "LastFileDate": {
            "description": "The last tax filing date for this tax agency. This field is automatically populated by QuickBooks business logic at tax filing time.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxAgencyConfig": {
            "description": "Flag to identify whether the TaxAgency is system defined by Automated Sales Tax engine or user generated. Valid values include USER_DEFINED , SYSTEM_GENERATED SYSTEM_GENERATED.",
            "readOnly": true,
            "type": "string"
          },
          "TaxRegistrationNumber": {
            "description": "Registration number for the agency.",
            "readOnly": true,
            "type": "string"
          },
          "TaxTrackedOnPurchases": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Denotes whether this tax agency is used to track tax on purchases.",
            "readOnly": true
          },
          "TaxTrackedOnSales": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Denotes whether this tax agency is used to track tax on sales.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "output_qbo_taxclassification": {
        "additionalProperties": true,
        "properties": {
          "ApplicableTo": {
            "description": "List of item types the tax classification is applicable to. Includes Inventory, NonInventory, Bundle and Service.",
            "type": "string"
          },
          "Code": {
            "description": "Code",
            "type": "string"
          },
          "Description": {
            "description": "Description of the tax classification",
            "type": "string"
          },
          "Level": {
            "description": "Tax classification level (Numeric value 1, or 2. 1 specifies parent tax classification)",
            "readOnly": true,
            "type": "string"
          },
          "Name": {
            "description": "Name of the tax classification",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference Type for parent"
          }
        },
        "type": "object"
      },
      "output_qbo_taxcoderesponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "False if inactive. Inactive sales tax codes may be hidden from display and may not be used on financial transactions."
          },
          "Description": {
            "description": "User entered description for the sales tax code.",
            "type": "string"
          },
          "Hidden": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Read-only. Denotes whether active tax codes are displayed on transactions. true —-This tax code is hidden on transactions. false —-This tax code is displayed on transactions.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the tax sales code.",
            "type": "string"
          },
          "PurchaseTaxRateList": {
            "$ref": "#/components/schemas/output_qbo_taxratelist",
            "description": "List of references to tax rates that apply for purchase transactions when this tax code represents a group of tax rates. Required when TaxGroup is set to true"
          },
          "SalesTaxRateList": {
            "$ref": "#/components/schemas/output_qbo_taxratelist",
            "description": "List of references to tax rates that apply for sales transactions when this tax code represents a group of tax rates. Required when TaxGroup is set to true"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxCodeConfigType": {
            "description": "Flag to identify whether the TaxCode is system defined by Automated Sales Tax engine or user generated. Valid values include USER_DEFINED , SYSTEM_GENERATED SYSTEM_GENERATED.",
            "readOnly": true,
            "type": "string"
          },
          "TaxGroup": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "true —-this object represents a group of one or more tax rates. false —-this object represents pseudo-tax codes TAX and NON.",
            "readOnly": true
          },
          "Taxable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "False or null means meaning non-taxable. True means taxable. Always true, except for the pseudo taxcode NON.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "output_qbo_taxline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of tax for this tax line. This value is negative for JournalEntry objects with PostingType set to Credit."
          },
          "DetailType": {
            "description": "Set to TaxLineDetail for this type of line.",
            "type": "string"
          },
          "TaxLineDetail": {
            "$ref": "#/components/schemas/output_qbo_taxlinedetail",
            "description": "TaxLineDetail"
          }
        },
        "type": "object"
      },
      "output_qbo_taxlinedetail": {
        "additionalProperties": true,
        "properties": {
          "NetAmountTaxable": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "This is the taxable amount on the total of the applicable tax rates. If TaxRate is applicable on two lines, this attribute represents the total of the two lines for which this rate is applied. This is different from the Line.Amount , which represents the final tax amount after the tax has been applied. Default Value: Null"
          },
          "OverrideDeltaAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The difference between the actual tax and the overridden amount supplied by the user."
          },
          "PercentBased": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "True —sales tax rate is expressed as a percentage. False —sales tax rate is expressed as a number amount."
          },
          "TaxInclusiveAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "This is the total amount, including tax."
          },
          "TaxPercent": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Numerical expression of the sales tax percent. For example, use \"8.5\" not \"0.085\"."
          },
          "TaxRateRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a TaxRate to apply to the entire transaction. Query the TaxRate name list resource to determine the appropriate TaxRage object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name , respectively. For non-US versions of QuickBooks, the TaxRate referenced here must also be one of the rates in the referenced tax code's rate list—either the SalesTaxRateList or the PurchaseTaxRateList—as applies to the transaction type. Any given rate may only be listed once."
          }
        },
        "type": "object"
      },
      "output_qbo_taxpaymentresponse": {
        "additionalProperties": true,
        "properties": {
          "Description": {
            "description": "Specifies the Memo/Description added for this payment.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Indicates the Account ID from which the payment was made (or refund was moved to).",
            "readOnly": true
          },
          "PaymentAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the tax payment amount paid towards a filed tax return.",
            "readOnly": true
          },
          "Refund": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicate if this transaction is a refund. Returns false for the payment."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TxnDate": {
            "description": "Indicates the tax payment date",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_taxprefs": {
        "additionalProperties": true,
        "properties": {
          "PartnerTaxEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Partner tax refers to the automated sales tax engine that provides sales tax compliance. All QuickBooks Online companies created after November 10, 2017 are enabled by default. If true , automated sales tax is enabled for the company and sales tax is set up ( UsingSalesTax is set to true ). If false , automated sales tax is enabled for the company but the company doesn't have sales tax set up ( UsingSalesTax is set to false ). If not present in response payload, the company is not enabled for automated sales tax.",
            "readOnly": true
          },
          "TaxGroupCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype"
          },
          "UsingSalesTax": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Sales tax enabled",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "output_qbo_taxratedetail": {
        "additionalProperties": true,
        "properties": {
          "TaxOrder": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Applicable Tax Order."
          },
          "TaxRateRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the tax rate."
          },
          "TaxTypeApplicable": {
            "description": "Applicable TaxType enum. Valid values: TaxOnAmount, TaxOnAmountPlusTax, TaxOnTax",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_taxratedetails": {
        "additionalProperties": true,
        "anyOf": [
          {},
          {}
        ],
        "properties": {
          "RateValue": {
            "description": "Required if: TaxRateId not present. The rate value. Must be between 0 and 100 (%). For create requests: do not include if TaxRateId has been specified.",
            "type": "string"
          },
          "TaxAgencyId": {
            "description": "The Id of the agency to whom tax is paid. Query the TaxAgency resource to determine the ID for the desired agency. For create requests: do not include if TaxRateId has been specified. Required if TaxRateId not present.",
            "type": "string"
          },
          "TaxApplicableOn": {
            "description": "Specifies where this tax rate can be applied. Possible values are Sales or Purchase .",
            "type": "string"
          },
          "TaxRateId": {
            "description": "Required if: TaxRateName , RateValue , and TaxAgencyId not present. The Id of an existing TaxRate. Query the TaxRate endpoint to determine the ID used for TaxRateId .",
            "type": "string"
          },
          "TaxRateName": {
            "description": "Required if TaxRateId not present. Name of a new tax rate. In Create requests: ignored if TaxRateId is present.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_taxratelist": {
        "additionalProperties": true,
        "properties": {
          "TaxRateDetail": {
            "description": "TaxRateDetail that specifies qualified detail of TaxRate.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_taxratedetail"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_taxrateresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this object is currently enabled for use by QuickBooks.",
            "readOnly": true
          },
          "AgencyRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the tax agency associated with this object.",
            "readOnly": true
          },
          "Description": {
            "description": "User entered description for the tax rate.",
            "readOnly": true,
            "type": "string"
          },
          "DisplayType": {
            "description": "TaxRate DisplayType enum which acts as display config.",
            "readOnly": true,
            "type": "string"
          },
          "EffectiveTaxRate": {
            "$ref": "#/components/schemas/output_qbo_effectivetaxratedata",
            "description": "List of EffectiveTaxRate. An EffectiveTaxRate is used to know which taxrate is applicable on any date.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the tax rate.",
            "readOnly": true,
            "type": "string"
          },
          "OriginalTaxRate": {
            "description": "ID of the original tax rate from which the new tax rate is derived. Helps to understand the relationship between corresponding tax rate entities.",
            "readOnly": true,
            "type": "string"
          },
          "RateValue": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Value of the tax rate.",
            "readOnly": true
          },
          "SpecialTaxType": {
            "description": "Special tax type to handle zero rate taxes. Used with VAT registered Businesses who receive goods/services (acquisitions) from other EU countries, will need to calculate the VAT due, but not paid, on these acquisitions. The rate of VAT payable is the same that would have been paid if the goods had been supplied by a UK supplier.",
            "readOnly": true,
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxReturnLineRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the tax return line associated with this object.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "output_qbo_taxserviceresponse": {
        "additionalProperties": true,
        "properties": {
          "TaxCode": {
            "description": "Name of new tax code. For current TaxCodes, query the TaxCode resource.",
            "type": "string"
          },
          "TaxCodeId": {
            "description": "The id of the newly created tax code. This is generated by Data Services and returned in the response code.",
            "readOnly": true,
            "type": "string"
          },
          "TaxRateDetails": {
            "description": "Container to hold one or more tax rate specifications.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_taxratedetails"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "output_qbo_telephonenumber": {
        "additionalProperties": true,
        "properties": {
          "FreeFormNumber": {
            "description": "Specifies the telephone number in free form.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_telephonenumber30": {
        "additionalProperties": true,
        "properties": {
          "FreeFormNumber": {
            "description": "Specifies the telephone number in free form.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_termresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "DayOfMonthDue": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Payment must be received by this day of the month. Used only if DueDays is not specified. Required if DueDays not present"
          },
          "DiscountDayOfMonth": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Discount applies if paid before this day of month. Required if DueDays not present"
          },
          "DiscountDays": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Discount applies if paid within this number of days. Used only when DueDays is specified."
          },
          "DiscountPercent": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Discount percentage available against an amount if paid within the days specified by DiscountDays ."
          },
          "DueDays": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Number of days from delivery of goods or services until the payment is due. Required if DayOfMonthDue not present"
          },
          "DueNextMonthDays": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Payment due next month if issued that many days before the DayOfMonthDue . Required if DueDays not present."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the term. For example, Net 30 .",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Type of the Sales Term. Valid values: STANDARD --Used if DueDays is not null. DATE_DRIVEN --Used if DueDays is null.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_timeactivityresponse": {
        "additionalProperties": true,
        "properties": {
          "BillableStatus": {
            "description": "Billable status of the time recorded. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled . You cannot directly update the status to HasBeenBilled . To set the status to HasBeenBilled , create an Invoice object and attach this TimeActivity object as a linked transaction to that Invoice.",
            "readOnly": true,
            "type": "string"
          },
          "BreakHours": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
          },
          "BreakMinutes": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Class associated with this object. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CostRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Pay rate of the employee or vendor for this time activity."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively. Required if BillableStatus is set to Billable"
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of this object. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "Description": {
            "description": "Description of work completed during time activity.",
            "type": "string"
          },
          "EmployeeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies the employee whose time is being recorded. Query the Employee name list resource to determine the appropriate Employee object for this reference. Use Employee.Id and Employee.DisplayName from that object for EmployeerRef.value and EmployeeRef.Name , respectively. Required if NameOf is set to Employee"
          },
          "EndTime": {
            "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
            "type": "string"
          },
          "HourlyRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Hourly bill rate of the employee or vendor for this time activity. Required if BillableStatus is set to Billable"
          },
          "Hours": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "ItemRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the service item associated with this object. Query the Item name list resource, where Item.Type is set to Service , to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Minutes": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
          },
          "NameOf": {
            "description": "Enumeration of time activity types. Required in conjunction with either EmployeeRef or VendorRef attributes for create operations. Valid values: Vendor or Employee .",
            "type": "string"
          },
          "PayrollItemRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies how much the employee should be paid for doing the work specified by the Compensation Id. Query the EmployeeCompensation resource to determine the appropriate PayrollCompensation object for an employee. Use EmployeeCompensation.Id and EmployerCompensation.Name from that object for PayrollItemRef.value and PayrollItemRef.name , respectively. This field is available as part of the Payroll Compensation resource in the Workforce API. Read more about the Payroll Compensation resource , available to Silver, Gold, and Platinum partners."
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "StartTime": {
            "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Taxable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "True if the time recorded is both billable and taxable."
          },
          "TxnDate": {
            "description": "The date for the time activity. This is the posting date that affects financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default. If you provide the StartTime and EndTime without including the timeZone offset, then you would need to pass the TxnDate for any historical or future dates. Lets say if you want to create a historical time activity then pass the TxnDate as the date and pass StartTime and EndTime as Hours without including the timeZone offset.",
            "type": "string"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies the vendor whose time is being recorded. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively. Required if NameOf is set to Vendor"
          }
        },
        "type": "object"
      },
      "output_qbo_timetrackingprefs": {
        "additionalProperties": true,
        "properties": {
          "BillCustomers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables billing customers for time."
          },
          "MarkTimeEntriesBillable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Mark time entries as billable.",
            "readOnly": true
          },
          "ShowBillRateToAll": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Billing rate to all employees enabled."
          },
          "UsingSalesTax": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Services for time tracking enabled."
          },
          "WorkWeekStartDate": {
            "description": "Work week starting day.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_transactionlistreporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/output_qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/output_qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/output_qbo_reportrows",
            "description": "Top level container holding information for report rows."
          }
        },
        "type": "object"
      },
      "output_qbo_transferresponse": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction."
          },
          "FromAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "ToAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_trialbalancereporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/output_qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/output_qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/output_qbo_profitandlossreportrows",
            "description": "Top level container holding information for profit and loss report rows."
          }
        },
        "type": "object"
      },
      "output_qbo_txntaxdetail": {
        "additionalProperties": true,
        "properties": {
          "TaxLine": {
            "items": {
              "$ref": "#/components/schemas/output_qbo_taxline"
            },
            "type": "array"
          },
          "TotalTax": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Total tax calculated for the transaction, excluding any tax lines manually inserted into the transaction line list."
          },
          "TxnTaxCodeRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the transaction tax code. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively. If specified and sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ), this element is ignored and not returned. For sales transactions, only: if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the supplied transaction tax code is replaced by the automated sales tax engine recommendation."
          }
        },
        "type": "object"
      },
      "output_qbo_vendorandpurchaseprefs": {
        "additionalProperties": true,
        "properties": {
          "BillableExpenseTracking": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Billable Expense tracking enabled."
          },
          "DefaultMarkup": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Default markup rate used to calculate the markup amount on the transactions. To enter a markup rate of 8.5%, enter 8.5, not 0.085."
          },
          "DefaultMarkupAccount": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Default markup account."
          },
          "DefaultTerms": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Default terms"
          },
          "POCustomField": {
            "items": {
              "additionalProperties": true,
              "properties": {
                "CustomField": {
                  "items": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/output_qbo_customfieldboolpo"
                      },
                      {
                        "$ref": "#/components/schemas/output_qbo_customfieldstringpo"
                      }
                    ],
                    "description": "Toggles whether Purchase Order Custom Fields are enabled on the sales form. Purchase Order forms can have up to three custom fields",
                    "readOnly": true
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "TPAREnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates if TPAR enabled by customer.",
            "readOnly": true
          },
          "TrackingByCustomer": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Enables tracking by customer."
          }
        },
        "type": "object"
      },
      "output_qbo_vendorcreditresponse": {
        "additionalProperties": true,
        "properties": {
          "APAccountRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
          },
          "Balance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "IncludeInAnnualTPAR": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/output_qbo_itembasedexpenseline"
                },
                {
                  "$ref": "#/components/schemas/output_qbo_accountbasedexpenseline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
            "items": {
              "$ref": "#/components/schemas/output_qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "type": "object"
      },
      "output_qbo_vendorpaymentbankdetail": {
        "additionalProperties": true,
        "properties": {
          "BankAccountName": {
            "description": "Name on the Bank Account",
            "type": "string"
          },
          "BankAccountNumber": {
            "description": "Vendor's Bank Account number.",
            "type": "string"
          },
          "BankBranchIdentifier": {
            "description": "bank identification number used to identify the Bank Branch. 6 digit value in format xxx-xxx.",
            "type": "string"
          },
          "StatementText": {
            "description": "Text/note/comment for Remmittance",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbo_vendorresponse": {
        "additionalProperties": true,
        "properties": {
          "AcctNum": {
            "description": "Name or number of the account associated with this vendor.",
            "type": "string"
          },
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "If true, this object is currently enabled for use by QuickBooks."
          },
          "AlternatePhone": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber30",
            "description": "Alternate phone number."
          },
          "Balance": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create, read-only otherwise.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/output_qbo_physicaladdress",
            "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "BillRate can be set to specify this vendor's hourly billing rate."
          },
          "CompanyName": {
            "description": "The name of the company associated with the person or organization.",
            "type": "string"
          },
          "CostRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Pay rate of the vendor"
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/output_qbo_currencyref",
            "description": "Reference to the currency in which all amounts associated with this vendor are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this vendor is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency . Read-only after object is created.",
            "readOnly": true
          },
          "DisplayName": {
            "description": "The name of the vendor as displayed. Must be unique across all Vendor, Customer, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating vendor name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
            "type": "string"
          },
          "FamilyName": {
            "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "Fax": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber30",
            "description": "Fax number."
          },
          "GivenName": {
            "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "HasTPAR": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicate if the vendor has TPAR enabled. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/output_qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "MiddleName": {
            "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "Mobile": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber30",
            "description": "Mobile phone number."
          },
          "OtherContactInfo": {
            "$ref": "#/components/schemas/output_qbo_contactinfo",
            "description": "List of ContactInfo entities of any contact info type."
          },
          "PrimaryEmailAddr": {
            "$ref": "#/components/schemas/output_qbo_emailaddress",
            "description": "Primary email address."
          },
          "PrimaryPhone": {
            "$ref": "#/components/schemas/output_qbo_telephonenumber30",
            "description": "Primary phone number."
          },
          "PrintOnCheckName": {
            "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update.",
            "type": "string"
          },
          "Source": {
            "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
            "type": "string"
          },
          "Suffix": {
            "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "T4AEligible": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "True if vendor is T4A eligible. Valid for CA locale"
          },
          "T5018Eligible": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "True if vendor is T5018 eligible. Valid for CA locale"
          },
          "TaxIdentifier": {
            "description": "The tax ID of the Person or Organization. The value is masked in responses, exposing only last four characters. For example, the ID of 123-45-6789 is returned as XXXXXXX6789 .",
            "type": "string"
          },
          "TermRef": {
            "$ref": "#/components/schemas/output_qbo_referencetype",
            "description": "Reference to a default Term associated with this Vendor object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for TermRef.value and TermRef.name , respectively."
          },
          "Title": {
            "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes are required during create.",
            "type": "string"
          },
          "Vendor1099": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "This vendor is an independent contractor; someone who is given a 1099-MISC form at the end of the year. A 1099 vendor is paid with regular checks, and taxes are not withheld on their behalf."
          },
          "VendorPaymentBankDetail": {
            "$ref": "#/components/schemas/output_qbo_vendorpaymentbankdetail",
            "description": "Vendor Payment Bank Detail."
          },
          "WebAddr": {
            "$ref": "#/components/schemas/output_qbo_websiteaddress",
            "description": "Website address."
          }
        },
        "type": "object"
      },
      "output_qbo_websiteaddress": {
        "additionalProperties": true,
        "properties": {
          "URI": {
            "description": "Uniform Resource Identifier for the web site.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_address": {
        "additionalProperties": true,
        "properties": {
          "city": {
            "description": "The city name for the address.",
            "type": "string"
          },
          "country": {
            "description": "The ISO-standard country code. Refer to the ISO Country Code List .",
            "type": "string"
          },
          "postalCode": {
            "description": "The postal code for the address. For US and Canada, this is the zip code. Required if no region is provided.",
            "type": "string"
          },
          "region": {
            "description": "Specifies the region within a country. This is the state, province, prefecture, or region name. For the US, this is the state name. For Canada, this is the province name. Required if no postal code is provided.",
            "type": "string"
          },
          "streetAddress": {
            "description": "The full street adddress. This may include the house number and street name (CR acceptable).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_bankaccount": {
        "additionalProperties": true,
        "properties": {
          "accountNumber": {
            "description": "The number of the bank account. For privacy and security, Account numbers that are 6 digits or less: all but the last 2 digits are masked Account numbers that are 7 digits or longer: all but the last 4 digits are masked Account Number masking changes are available in Sandbox companies currently and will be available from July 11th, 2022 for Production companies.",
            "type": "string"
          },
          "accountType": {
            "description": "The type of bank account. Valid values: PERSONAL_CHECKING : Use for personal checking accounts. PERSONAL_SAVINGS : Use for personal savings accounts. BUSINESS_CHECKING : Use for business checking accounts. BUSINESS_SAVINGS : Use for business savings accounts.",
            "type": "string"
          },
          "bankCode": {
            "description": "For US : This should also be the routing number for the bank associated with the account.",
            "type": "string"
          },
          "country": {
            "description": "The ISO-standard country code. Refer to the ISO Country Code List .",
            "type": "string"
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates if the bank account is the default. When users set a default, the account flag is true . This is the bank account QuickBooks uses when another isn't specified. The flag defaults to false . When a bank account flag is true , all other stored bank accounts are automatically set to false ."
          },
          "entityId": {
            "description": "The ID of the entity the bank account is associated with.",
            "type": "string"
          },
          "entityType": {
            "description": "The entity or user type the bank account is associated with. Example values: Customer , Employee , Vendor or Company",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of a bank account object. The id is required for update or delete operations.",
            "type": "string"
          },
          "inputType": {
            "description": "Specifies the input type. Valid values: KEYED : Indicates a manually-entered key. SCANNED",
            "type": "string"
          },
          "name": {
            "description": "The name of the bank account owner.",
            "type": "string"
          },
          "phone": {
            "description": "The phone number associated with the bank account.",
            "type": "string"
          },
          "routingNumber": {
            "description": "The routing number for the bank associated with the account. For privacy and security, we only display the last four digits of the routing number.",
            "type": "string"
          },
          "updated": {
            "description": "The time the object was last updated. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_captureresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 ."
          },
          "context": {
            "$ref": "#/components/schemas/output_qbpayments_paymentcontext",
            "description": "Additional data you want to store with the transaction."
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Text info you want to store with the transaction.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_card": {
        "additionalProperties": true,
        "properties": {
          "address": {
            "$ref": "#/components/schemas/output_qbpayments_address",
            "description": "The cardholder's full address."
          },
          "cardType": {
            "description": "The type of credit or debit card. Valid values: VISA MC AMEX DISC DINERS JCB",
            "type": "string"
          },
          "commercialCardCode": {
            "description": "A code that indicates if the card is a commercial or corporate card. This can be used to track specific business purchases.",
            "type": "string"
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Indicates if the credit or debit card is the default. When users set a default, the flag is true . This is the credit or debit card QuickBooks uses when another isn't specified. The flag defaults to false . When a credit or debit card flag is true, all other cards are automatically set to false."
          },
          "entityId": {
            "description": "The ID of the entity the card is associated with.",
            "type": "string"
          },
          "entityType": {
            "description": "The entity or user type the card is associated with. Example values: Customer , Employee , Vendor or Company .",
            "type": "string"
          },
          "expMonth": {
            "description": "The card's two digit expiration month.",
            "type": "string"
          },
          "expYear": {
            "description": "The card's four digit expiration year.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the card object.",
            "type": "string"
          },
          "isBusiness": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "This flag is set to true if the credit or debit card is a business card."
          },
          "isLevel3Eligible": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Flag set to true if the credit or debit card falls into the L3 eligible Bank Identification Number (BIN) range."
          },
          "name": {
            "description": "The name of the credit or debit card holder, as it appears on the card.",
            "type": "string"
          },
          "number": {
            "description": "The credit or debit card number.",
            "type": "string"
          },
          "updated": {
            "description": "The time the object was last updated. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "zeroDollarVerification": {
            "$ref": "#/components/schemas/output_qbpayments_zerodollarverification",
            "description": "Stores card verification information."
          }
        },
        "type": "object"
      },
      "output_qbpayments_chargeresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 ."
          },
          "authCode": {
            "description": "The authorization code for the charge. Note : This is only available for uncaptured charges.",
            "type": "string"
          },
          "avsStreet": {
            "description": "The address verification service (AVS). This service verifies the street address submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
            "type": "string"
          },
          "avsZip": {
            "description": "The address verification service (AVS). This service verifies the ZIP code submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
            "type": "string"
          },
          "capture": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "A flag that indicates if the charge was captured. Valid values: True : The charge was captured False : The charge wasn't captured. It's pending authorization. Defaults to true ."
          },
          "captureDetail": {
            "$ref": "#/components/schemas/output_qbpayments_captureresponse",
            "description": "Details about the captured charge. Available for previously authorized charges.",
            "readOnly": true
          },
          "card": {
            "$ref": "#/components/schemas/output_qbpayments_card",
            "description": "The credit or debit card used for the charge. Required if token isn't specified."
          },
          "cardSecurityCodeMatch": {
            "description": "The 3 or 4 digit card security code number that appears on credit and debit cards. This number is not part of the main credit card number. This field indicates if the security code submitted at the time of the transaction matches what's on file at the cardholder's bank. Valid responses: Pass Fail NotAvailable",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/output_qbpayments_paymentcontext",
            "description": "Additional info that will be stored with the transaction."
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "currency": {
            "description": "The 3-letter ISO 4217 compliant currency code, which defines the currency for the charge.",
            "type": "string"
          },
          "description": {
            "description": "Free form text description. Additional details associated with the charge.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the charge. This is a system-generated alpha-numeric ID.",
            "type": "string"
          },
          "refundDetail": {
            "items": {
              "$ref": "#/components/schemas/output_qbpayments_refundresponse",
              "description": "Details for one or more refunds applied to this charge."
            },
            "type": "array"
          },
          "status": {
            "description": "The status of the charge. Charge athorization and capture are a two part process. Learn more about charge states for the QuickBookls Payments API. Valid values: AUTHORIZED : The card's issuing bank has authorized the cardholder's ability to pay. This ensures the credit or debit card account is in good standing with sufficient funds. DECLINED : The card authorization was declined, rejected by the payment transaction service (PTS), or returned by the payment processor. CAPTURED : The payment is in the second part of the two-step authorization and capture process. CANCELLED : The transaction was cancelled. SETTLED : The payment was successfully funded. The money moved to the seller’s (i.e. merchant’s) bank account. At this point, the charge is complete. REFUNDED : The money successfully transferred back to the buyer (i.e. card holder).",
            "readOnly": true,
            "type": "string"
          },
          "token": {
            "description": "The opaque container for the credit or debit card account associated with the transaction. Required if the card isn't specified. Tokens are preferred to directly specifying a card or cardOnFile to comply with PCI standards. Learn more about creating tokens.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_deviceinfo": {
        "additionalProperties": true,
        "properties": {
          "encrypted": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "The device's encryption status."
          },
          "id": {
            "description": "The device's ID.",
            "type": "string"
          },
          "ipAddress": {
            "description": "The device's IP address.",
            "type": "string"
          },
          "latitude": {
            "description": "The device's latitude coordinates.",
            "type": "string"
          },
          "longitude": {
            "description": "The device's longitude coordinates.",
            "type": "string"
          },
          "macAddress": {
            "description": "The device's media access control (MAC) address.",
            "type": "string"
          },
          "phoneNumber": {
            "description": "The device's phone number (if available).",
            "type": "string"
          },
          "type": {
            "description": "The type of device.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_echeckresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The eCheck amount. Valid values: Any value between 0.01 and 99999.99 ."
          },
          "authCode": {
            "description": "The authorization code for the echeck.",
            "type": "string"
          },
          "bankAccount": {
            "$ref": "#/components/schemas/output_qbpayments_bankaccount"
          },
          "bankAccountOnFile": {
            "description": "An existing bank account that was previously stored. Specify the ID of the existing bank account. Required if the token or bankAccount aren't specified.",
            "type": "string"
          },
          "checkNumber": {
            "description": "The number of the eCheck associated with the transaction. This number must be unique. Using the same checkNumber to create multiple eChecks will result in declines.",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/output_qbpayments_deviceinfo",
            "description": "Additional info stored with the transaction."
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Additional details about the eCheck and transaction.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the eCheck.",
            "type": "string"
          },
          "paymentMode": {
            "description": "The payment mode. This is also known as the SEC Code. Valid values: WEB : Internet-initiated entry mode used for internet transactions.",
            "type": "string"
          },
          "status": {
            "description": "The current status of the check. Learn more about check states . Valid values types: PENDING : The check is being processed. SUCCEEDED : The check was funded and the transaction is complete. DECLINED : The check was rejected. VOIDED : The check was voided. REFUNDED : The check was refunded.",
            "readOnly": true,
            "type": "string"
          },
          "token": {
            "description": "The opaque container for the credit or debit card account associated with the transaction. Required if the bankAccount or bankAccountOnFile aren't specified. Learn more about creating tokens.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_lodging": {
        "additionalProperties": true,
        "properties": {
          "chargeType": {
            "description": "Indicates the specific lodging or non-lodging service charged to the customer. Valid values: ConventionFees GiftShop Golf HealthClub Hotel Restaurant Salon Tennis",
            "type": "string"
          },
          "checkInDate": {
            "description": "The date of actual or anticipated check-in, depending on the transaction type. The check-in date can't be later than the check-out date. The date format is dates is CCCC-MM-DD where: CCCC : The four-digit year MM : The two digit month DD : The Two digit day For example: June 5, 2019 is represented as 2019-06-05 .",
            "type": "string"
          },
          "checkOutDate": {
            "description": "The date of actual or anticipated check-out, depending on the transaction type. The check-out date must always be later than the check-in date. The date format is dates is CCCC-MM-DD where: CCCC : The four-digit year MM : The two digit month DD : The Two digit day For example: June 5, 2019 is represented as 2019-06-05 .",
            "type": "string"
          },
          "extraCharges": {
            "description": "Indicates if the current charge contains one or more additional charges. This field is only relevant for lodging apps. It indicates the types of extra charges billed to the customer. They usually apply after a customer checks out. Valid values: GiftShop Laundry Minibar Restaurant Telephone Other",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "folioID": {
            "description": "The unique ID that identifies the bill for a particular guest's stay. This value can be assigned by a hotel or automatically by lodging apps.",
            "type": "string"
          },
          "lengthOfStay": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The anticipated, actual, or icremental length of stay, depending on the transaction type."
          },
          "roomRate": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The nightly rate for the room. This field is only relevant for lodging apps. It should represent the nightly rate for the room as quoted at the time of reservation, including the taxes. If the reservation spans multiple days, provide the average rate for those days."
          },
          "specialProgram": {
            "description": "Indicates if the current charge is a normal room charge, an advance deposit, and so forth. This field is only relevant for lodging apps. It indicates the reason for the charge. Valid values: AdvanceDeposit AssuredReservation DelayedCharge ExpressService NormalCharge NoShowCharge",
            "type": "string"
          },
          "totalAuthAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The total amount authorized by the card issuer for the current credit card and the current FolioID . It refers to the total amount authorized for the particular card and folio and includes tax and other applicable charges. Apps are responsible for keeping a running total of authorizations and submitting the correct amount in this field."
          }
        },
        "type": "object"
      },
      "output_qbpayments_paymentcontext": {
        "additionalProperties": true,
        "properties": {
          "deviceInfo": {
            "$ref": "#/components/schemas/output_qbpayments_deviceinfo",
            "description": "Provides info about the device used to swipe or take payments."
          },
          "isEcommerce": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Flag that indicates if the charge is an eCommerce transaction made over the web."
          },
          "lodging": {
            "$ref": "#/components/schemas/output_qbpayments_lodging",
            "description": "For lodging transactions, provides details about the lodging."
          },
          "mobile": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Flag that indicates if the charge was made from a mobile device. The card can be keyed, swiped, dipped or tapped on the merchant's POS device."
          },
          "recurring": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "This is set to true if the charge is recurring. Note : This value ignored for capture and refund requests."
          },
          "restaurant": {
            "$ref": "#/components/schemas/output_qbpayments_restaurant",
            "description": "For restaurant transactions, provides details about the restaurant."
          },
          "tax": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                        "type": "string"
                      }
                    ]
                  },
                  {
                    "type": "string"
                  }
                ],
                "description": "The sales tax required for commercial card processing."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "type": "object"
      },
      "output_qbpayments_refundresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "Amount. If no number is specified, the full amount will be used."
          },
          "context": {
            "$ref": "#/components/schemas/output_qbpayments_paymentcontext",
            "description": "Additional data you wish to store for this transaction."
          },
          "created": {
            "description": "Object create time, in ISO 8601 date-time format, such as YYYY-MM-DDTHH:MM:SSZ",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Description.",
            "type": "string"
          },
          "id": {
            "description": "System generated alpha-numeric id.",
            "type": "string"
          },
          "status": {
            "description": "Status of the refund. Valid status types include: ISSUED , DECLINED , SETTLED , VOIDED and SUCCEEDED .",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "The type of refund. Valid type include: REFUND or VOID .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_restaurant": {
        "additionalProperties": true,
        "properties": {
          "beverageAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the current charge attributed to beverages."
          },
          "foodAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the current charge attributed to food."
          },
          "serverID": {
            "description": "The 2-digit string that identifies the individual server responsible for the transaction. Restaurant assign their own identifiers to their servers.",
            "type": "string"
          },
          "taxAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the current charge attributed to tax."
          },
          "tipAmount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The amount of the current charge attributed to tips."
          }
        },
        "type": "object"
      },
      "output_qbpayments_token": {
        "additionalProperties": true,
        "properties": {
          "value": {
            "description": "The ID of the system generated token. Learn more about the token entity.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_txnrequestcontext": {
        "additionalProperties": true,
        "properties": {
          "mobile": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "Flag that indicates if the charge was made from a mobile device. The card can be keyed, swiped, dipped or tapped on the merchant's POS device."
          },
          "recurring": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "string"
              }
            ],
            "description": "This is set to true if the charge is recurring. Note : This value ignored for capture and refund requests."
          }
        },
        "type": "object"
      },
      "output_qbpayments_txnrequestresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                    "type": "string"
                  }
                ]
              },
              {
                "type": "string"
              }
            ],
            "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 .."
          },
          "context": {
            "$ref": "#/components/schemas/output_qbpayments_txnrequestcontext",
            "description": "Additional info that will be stored with the transaction."
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "The system-generated alpha-numeric ID of the void.",
            "type": "string"
          },
          "status": {
            "description": "The status of the void. Valid responses: ISSUED : The void was successfull and the money went back to the card holder successfully been issued. DECLINED L: The system didn't find a match. This isn't common.",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "The type of transaction being voided. Valid types include: VOID : The transaction needs to be voided.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "output_qbpayments_zerodollarverification": {
        "additionalProperties": true,
        "properties": {
          "status": {
            "description": "Denotes the verification status of the credit or debit card.",
            "type": "string"
          },
          "transactionId": {
            "description": "The ID of the transaction (if returned) from the verification service.",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Contains information about type of verification used to verify the creidt or debit card. It can be $0auth with card networks, or be an internal Intuit service",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_accountbasedexpenseline": {
        "additionalProperties": true,
        "properties": {
          "AccountBasedExpenseLineDetail": {
            "$ref": "#/components/schemas/qbo_accountbasedexpenselinedetail",
            "description": "LineDetail"
          },
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to AccountBasedExpenseLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive Integer."
          }
        },
        "required": [
          "DetailType",
          "Amount",
          "AccountBasedExpenseLineDetail"
        ],
        "type": "object"
      },
      "qbo_accountbasedexpenselinebill": {
        "additionalProperties": true,
        "properties": {
          "AccountBasedExpenseLineDetail": {
            "$ref": "#/components/schemas/qbo_accountbasedexpenselinedetail",
            "description": "LineDetail"
          },
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to AccountBasedExpenseLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive Integer."
          },
          "LinkedTxn": {
            "description": "Zero or more PurchaseOrder transactions linked to this Bill object. The LinkedTxn.TxnType should always be set to PurchaseOrder . Use LinkedTxn.TxnId as the ID of the PurchaseOrder. When updating an existing Bill to link to a PurchaseOrder a new Line must be created. This behavior matches the QuickBooks UI as it does not allow the linking of an existing line, but rather a new line must be added to link the PurchaseOrder. Over the API this is achieved by simply updating the Bill Line.Id to something new. This will ensure old bill line is deleted and the new line is linked to the PurchaseOrder.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          }
        },
        "required": [
          "DetailType",
          "Amount",
          "AccountBasedExpenseLineDetail"
        ],
        "type": "object"
      },
      "qbo_accountbasedexpenselinedetail": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Expense account associated with this item. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType=Expense . Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively. For France locales: The account associated with the referenced Account object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then this account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "BillableStatus": {
            "description": "The billable status of the expense. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled",
            "readOnly": true,
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the expense. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Customer associated with the expense. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "MarkupInfo": {
            "$ref": "#/components/schemas/qbo_markupinfo",
            "description": "Markup information for the expense."
          },
          "TaxAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Sales tax paid as part of the expense."
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The TaxCode associated with the sales tax for the expense. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TaxInclusiveAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The total amount of the line item including tax."
          }
        },
        "required": [
          "AccountRef"
        ],
        "type": "object"
      },
      "qbo_accountinginfoprefs": {
        "additionalProperties": true,
        "properties": {
          "BookCloseDate": {
            "description": "This setting corresponds to the Closing date preference in the QuickBooks Online Company Settings and specifies the date the books are closed: income and expense accounts are closed and net profit or loss is rolled up into the retained earnings account. Transactions before this date are protected from changes.",
            "readOnly": true,
            "type": "string"
          },
          "ClassTrackingPerTxn": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This setting correspond to how classes are assigned when Track classes in QuickBooks Online Company Settings under Categories is set to On . If set to true , assign classes at the transaction level. Only one of ClassTrackingPerTxnLine or ClassTrackingPerTxn can be set to true at a given time. If Track classes is set to Off in company settings, both are set to false ."
          },
          "ClassTrackingPerTxnLine": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This setting correspond to how classes are assigned when Track classes in QuickBooks Online Company Settings under Categories is set to On . If set to true , assign classes at the line level. Only one of ClassTrackingPerTxnLine or ClassTrackingPerTxn can be set to true at a given time. If Track classes is set to Off in company settings, both are set to false ."
          },
          "CustomerTerminology": {
            "description": "This setting corresponds to the Customer label preference in QuickBooks Online Company Settings and specifies the term used by the company for customers. This string is used in many places throughout the QuickBooks UI having to do with sales-side activities. Possible values include: Clients , Customers , Donors , Guests , Members , Patients , Tenants .",
            "type": "string"
          },
          "DepartmentTerminology": {
            "description": "Specifies the term used by the company for department. This string is used as a label on transaction forms. Possible values include: Business , Department , Division , Location , Property , Store , Territory . This is returned only if the company's Track location preference is enabled. See TrackDepartments for more details.",
            "type": "string"
          },
          "FirstMonthOfFiscalYear": {
            "description": "This setting corresponds to the First month of fiscal year preference in the QuickBooks Online Company Settings to specify the beginning of the company's fiscal year. Specify months as fulling spelled out: January , February , and so on.",
            "readOnly": true,
            "type": "string"
          },
          "TaxForm": {
            "description": "This setting corresponds to the Tax form preference in the QuickBooks Online Company Settings to specify the tax form your company files.",
            "readOnly": true,
            "type": "string"
          },
          "TaxYearMonth": {
            "description": "This setting corresponds to the First month of income tax year preference in the QuickBooks Online Company Settings to specify the beginning of the company's fiscal year. Specify months as fulling spelled out: January , February , and so on.",
            "readOnly": true,
            "type": "string"
          },
          "TrackDepartments": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This setting corresponds to the Track locations preference in QuickBooks Online Company Settings under Categories. If Track locations is set to On , this attribute is returned as true in the response. Otherwise, false is returned."
          },
          "UseAccountNumbers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This setting corresponds to Enable account numbers in QuickBooks Online Company Settings. If set to On , account names are displayed with their corresponding account numbers in chart of accounts. If set to off , account numbers are not displayed with account names in chart of accounts.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "qbo_accountlistquery": {
        "additionalProperties": true,
        "properties": {
          "account_status": {
            "description": "The account status. Supported values include: Deleted , Not_Deleted",
            "type": "string"
          },
          "account_type": {
            "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable, AccountsReceivable, Bank, CostOfGoodsSold, CreditCard, Equity, Expense, FixedAsset, Income, LongTermLiability, NonPosting, OtherAsset, OtherCurrentAsset, OtherCurrentLiability, OtherExpense, OtherIncome",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: account_name* , account_type* , detail_acc_type , create_date , create_by , detail_acc_type* , last_ mod_date , last_ mod_by , account_desc* , account_bal*",
            "type": "string"
          },
          "createdate_macro": {
            "description": "Predefined report account create date range. Use if you want the report to cover a standard create report date range; otherwise, use start_createdate and end_createdate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_date": {
            "description": "The start date and end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range.",
            "type": "string"
          },
          "end_moddate": {
            "description": "If not specified value of moddate_macro is used. (Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
            "type": "string"
          },
          "moddate_macro": {
            "description": "Predefined report account modification date range. Use if you want the report to cover a standard report date range when accounts were modified; otherwise, use the start_moddate and end_moddate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date and end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range.",
            "type": "string"
          },
          "start_moddate": {
            "description": "If not specified value of moddate_macro is used. (Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_accountrequest": {
        "additionalProperties": true,
        "properties": {
          "AccountSubType": {
            "description": "The account sub-type classification and is based on the AccountType value. Required if AccountType is not specified.",
            "type": "string"
          },
          "AccountType": {
            "description": "A detailed account classification that specifies the use of this account. The type is based on the Classification. Required if AccountSubType is not specified.",
            "type": "string"
          },
          "AcctNum": {
            "description": "User-defined account number to help the user in identifying the account within the chart-of-accounts and in deciding what should be posted to the account. The Account.AcctNum attribute must not contain colon (:).",
            "type": "string"
          },
          "Name": {
            "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the default tax code used by this account. Tax codes are referenced by the TaxCode.Id in the TaxCode object. For global locales, only."
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_accountresponse": {
        "additionalProperties": true,
        "properties": {
          "AccountSubType": {
            "description": "The account sub-type classification and is based on the AccountType value.",
            "type": "string"
          },
          "AccountType": {
            "description": "A detailed account classification that specifies the use of this account. The type is based on the Classification.",
            "type": "string"
          },
          "AcctNum": {
            "description": "User-defined account number to help the user in identifying the account within the chart-of-accounts and in deciding what should be posted to the account. The Account.AcctNum attribute must not contain colon (:). Name must be unique. Max length for Account.AcctNum : AU & CA: 20 characters. US, UK & IN: 7 characters",
            "type": "string"
          },
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
          },
          "Classification": {
            "description": "The classification of an account. Not supported for non-posting accounts. Valid values include: Asset , Equity , Expense , Liability , Revenue",
            "readOnly": true,
            "type": "string"
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which this account holds amounts.",
            "readOnly": true
          },
          "CurrentBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the balance amount for the current Account. Valid for Balance Sheet accounts.",
            "readOnly": true
          },
          "CurrentBalanceWithSubAccounts": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the cumulative balance amount for the current Account and all its sub-accounts.",
            "readOnly": true
          },
          "Description": {
            "description": "User entered description for the account, which may include user entered information to guide bookkeepers/accountants in deciding what journal entries to post to the account.",
            "type": "string"
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the object; derived from Name and ParentRef . The fully qualified name prepends the topmost parent, followed by each subaccount separated by colons and takes the form of Parent:Account1:SubAccount1:SubAccount2 . System generated. Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies the Parent AccountId if this represents a SubAccount."
          },
          "SubAccount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies whether this object represents a parent (false) or subaccount (true). Please note that accounts of these types - OpeningBalanceEquity , UndepositedFunds , RetainedEarnings , CashReceiptIncome , CashExpenditureExpense , ExchangeGainOrLoss cannot have a sub account and cannot be a sub account of another account.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the default tax code used by this account. Tax codes are referenced by the TaxCode.Id in the TaxCode object. For global locales, only."
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_agedpayabledetailquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "aging_period": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of days in the aging period. Supported Values: A numeric value."
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: create_by, create_date, doc_num*, due_date*, last_mod_by, last_mod_date, memo*, past_due*, term_name, tx_date*, txn_type*, vend_bill_addr, vend_comp_name, vend_name*, vend_pri_cont, vend_pri_email, vend_pri_tel Additional columns with location tracking enabled: dept_name*",
            "type": "string"
          },
          "custom1": {
            "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
            "type": "string"
          },
          "custom2": {
            "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
            "type": "string"
          },
          "custom3": {
            "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
            "type": "string"
          },
          "end_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "num_periods": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "The number of periods to be shown in the report. Supported Values: A numeric value."
          },
          "past_due": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Filters report contents based on minimum days past due. Supported Values: Integer number of days. no filtering"
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "shipvia": {
            "description": "Filter by the shipping method as stored in Invoice.ShipMethodRef.Name . Supported Values: Any shipping method as sent in the Invoice.ShipMethodRef.Name attribute at Invoice create- or update-time.",
            "type": "string"
          },
          "start_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "term": {
            "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_agedpayablesquery": {
        "additionalProperties": true,
        "properties": {
          "aging_method": {
            "description": "The date upon which aging is determined. Supported Values: Report_Date , Current",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_agedpayablesreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_agedpayablestoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/qbo_agedpayablesreportrows",
            "description": "Top level container holding information for Aged Receivables report rows."
          }
        },
        "type": "object"
      },
      "qbo_agedreceivabledetailquery": {
        "additionalProperties": true,
        "properties": {
          "aging_method": {
            "description": "The date upon which aging is determined. Supported Values: Report_Date , Current",
            "type": "string"
          },
          "aging_period": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of days in the aging period. Supported Values: A numeric value."
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: bill_addr, create_by, create_date, cust_bill_email, cust_comp_name, cust_msg, cust_msg, cust_msg, cust_name, deliv_addr, doc_num*, due_date*, last_mod_by, last_mod_date, memo*, past_due, sale_sent_state, ship_addr, term_name, tx_date*, txn_type* Additional columns with custom fields enabled: sales_cust1, sales_cust2, sales_cust3 Additional columns with location tracking enabled: dept_name*",
            "type": "string"
          },
          "custom1": {
            "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
            "type": "string"
          },
          "custom2": {
            "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
            "type": "string"
          },
          "custom3": {
            "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "end_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "num_periods": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "The number of periods to be shown in the report. Supported Values: A numeric value."
          },
          "past_due": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Filters report contents based on minimum days past due. Supported Values: Integer number of days. No filtering."
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "shipvia": {
            "description": "Filter by the shipping method as stored in Invoice.ShipMethodRef.Name . Supported Values: Any shipping method as sent in the Invoice.ShipMethodRef.Name attribute at Invoice create- or update-time.",
            "type": "string"
          },
          "start_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "term": {
            "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_agedreceivablesquery": {
        "additionalProperties": true,
        "properties": {
          "aging_method": {
            "description": "The date upon which aging is determined. Supported Values: Report_Date , Current",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_agedreceivablesreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_agedreceivablestoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/qbo_agedreceivablesreportrows",
            "description": "Top level container holding information for Aged Receivables report rows."
          }
        },
        "type": "object"
      },
      "qbo_associatedvalues": {
        "additionalProperties": true,
        "properties": {
          "Key": {
            "description": "For ExtensionType=DIMENSION , the unique ID of the dimension definition.",
            "type": "string"
          },
          "Value": {
            "description": "For ExtensionType=DIMENSION , the unique ID of the selected dimension value.",
            "type": "string"
          }
        },
        "required": [
          "Value",
          "Key"
        ],
        "type": "object"
      },
      "qbo_attachableref": {
        "additionalProperties": true,
        "properties": {
          "CustomField": {
            "description": "If the user tries to fetch a record without permission, the permission denied message is conveyed through this field.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "EntityRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Object reference to which this attachment is linked. Set EntityRef.value with the Id of the target object as returned in its response body when queried. Set EntityRef.type with the specific type of the target object. For example, invoice , bill , item , etc."
          },
          "Inactive": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates whether or not to include references to hidden entities when filtering. When set to true , hidden references are returned in the result set. For filtering results, it works with AttachableRef.EntityRef.Type , AttachableRef.EntityRef.Value and AttachableRef.NoRefOnly filters in combination."
          },
          "IncludeOnSend": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Used when EntityRef.type references a transaction object. This field indicates whether or not the attachment is sent with the transaction when Save and Send button is clicked in the QuickBooks UI or when the Send endpoint (send email) is invoked for the object."
          },
          "LineInfo": {
            "description": "For transaction objects, used to reference a transaction detail line.",
            "type": "string"
          },
          "NoRefOnly": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates whether or not to find attachable records that have no references to any entity. Combine with AttachableRef.Inactive to return hidden references."
          }
        },
        "type": "object"
      },
      "qbo_attachablerequest": {
        "additionalProperties": true,
        "properties": {
          "AttachableRef": {
            "description": "Specifies the transaction object to which this attachable file is to be linked.",
            "items": {
              "$ref": "#/components/schemas/qbo_attachableref"
            },
            "type": "array"
          },
          "FileName": {
            "description": "FileName of the attachment. Required for file attachments.",
            "type": "string"
          },
          "Note": {
            "description": "The note is either related to the attachment specified with the FileName attribute, or as a standalone note. Required for note attachments.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_attachableresponse": {
        "additionalProperties": true,
        "properties": {
          "AttachableRef": {
            "description": "Specifies the transaction object to which this attachable file is to be linked.",
            "items": {
              "$ref": "#/components/schemas/qbo_attachableref"
            },
            "type": "array"
          },
          "Category": {
            "description": "Category of the attachment. Valid values include (case sensitive): Contact Photo , Document , Image , Receipt , Signature , Sound , Other .",
            "type": "string"
          },
          "ContentType": {
            "description": "ContentType of the attachment. Returned for file attachments.",
            "type": "string"
          },
          "FileAccessUri": {
            "description": "FullPath FileAccess URI of the attachment. Returned for file attachments.",
            "readOnly": true,
            "type": "string"
          },
          "FileName": {
            "description": "FileName of the attachment. Required for file attachments.",
            "type": "string"
          },
          "Id": {
            "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "Lat": {
            "description": "Latitude from where the attachment was requested.",
            "type": "string"
          },
          "Long": {
            "description": "Longitude from where the attachment was requested.",
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Note": {
            "description": "This note is either related to the attachment specified by FileName or is a standalone note. Required for standalone notes.",
            "type": "string"
          },
          "PlaceName": {
            "description": "PlaceName from where the attachment was requested.",
            "type": "string"
          },
          "Size": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Size of the attachment. Returned for file attachments.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Tag": {
            "description": "Tag name for the requested attachment.",
            "type": "string"
          },
          "TempDownloadUri": {
            "description": "TempDownload URI which can be directly downloaded by clients. Returned for file attachments.",
            "readOnly": true,
            "type": "string"
          },
          "ThumbnailFileAccessUri": {
            "description": "FullPath FileAccess URI of the attachment thumbnail if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
            "readOnly": true,
            "type": "string"
          },
          "ThumbnailTempDownloadUri": {
            "description": "Thumbnail TempDownload URI which can be directly downloaded by clients. This is only available if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_balancesheetquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "adjusted_gain_loss": {
            "description": "Specifies whether unrealized gain and losses are included in the report. Supported Values: true , false",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "item": {
            "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_balancesheetreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_balancesheetreporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/qbo_balancesheetreportrows",
            "description": "Top level container holding information for Profit and Loss report rows."
          }
        },
        "type": "object"
      },
      "qbo_batchitemrequest": {
        "anyOf": [
          {
            "additionalProperties": false,
            "properties": {
              "Query": {
                "minLength": 1,
                "type": "string"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "bId",
              "Query"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Account": {
                "additionalProperties": false,
                "properties": {
                  "AccountSubType": {
                    "description": "The account sub-type classification and is based on the AccountType value. Required if AccountType is not specified.",
                    "type": "string"
                  },
                  "AccountType": {
                    "description": "A detailed account classification that specifies the use of this account. The type is based on the Classification. Required if AccountSubType is not specified.",
                    "type": "string"
                  },
                  "AcctNum": {
                    "description": "User-defined account number to help the user in identifying the account within the chart-of-accounts and in deciding what should be posted to the account. The Account.AcctNum attribute must not contain colon (:).",
                    "type": "string"
                  },
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                  },
                  "Classification": {
                    "description": "The classification of an account. Not supported for non-posting accounts. Valid values include: Asset , Equity , Expense , Liability , Revenue",
                    "readOnly": true,
                    "type": "string"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which this account holds amounts.",
                    "readOnly": true
                  },
                  "CurrentBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the balance amount for the current Account. Valid for Balance Sheet accounts.",
                    "readOnly": true
                  },
                  "CurrentBalanceWithSubAccounts": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the cumulative balance amount for the current Account and all its sub-accounts.",
                    "readOnly": true
                  },
                  "Description": {
                    "description": "User entered description for the account, which may include user entered information to guide bookkeepers/accountants in deciding what journal entries to post to the account.",
                    "type": "string"
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the object; derived from Name and ParentRef . The fully qualified name prepends the topmost parent, followed by each subaccount separated by colons and takes the form of Parent:Account1:SubAccount1:SubAccount2 . System generated. Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the Parent AccountId if this represents a SubAccount."
                  },
                  "SubAccount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies whether this object represents a parent (false) or subaccount (true). Please note that accounts of these types - OpeningBalanceEquity , UndepositedFunds , RetainedEarnings , CashReceiptIncome , CashExpenditureExpense , ExchangeGainOrLoss cannot have a sub account and cannot be a sub account of another account.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the default tax code used by this account. Tax codes are referenced by the TaxCode.Id in the TaxCode object. For global locales, only."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Name"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Account"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Account": {
                "additionalProperties": false,
                "properties": {
                  "AccountSubType": {
                    "description": "The account sub-type classification and is based on the AccountType value.",
                    "type": "string"
                  },
                  "AccountType": {
                    "description": "A detailed account classification that specifies the use of this account. The type is based on the Classification.",
                    "type": "string"
                  },
                  "AcctNum": {
                    "description": "User-defined account number to help the user in identifying the account within the chart-of-accounts and in deciding what should be posted to the account. The Account.AcctNum attribute must not contain colon (:). Name must be unique. Max length for Account.AcctNum : AU & CA: 20 characters. US, UK & IN: 7 characters",
                    "type": "string"
                  },
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                  },
                  "Classification": {
                    "description": "The classification of an account. Not supported for non-posting accounts. Valid values include: Asset , Equity , Expense , Liability , Revenue",
                    "readOnly": true,
                    "type": "string"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which this account holds amounts.",
                    "readOnly": true
                  },
                  "CurrentBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the balance amount for the current Account. Valid for Balance Sheet accounts.",
                    "readOnly": true
                  },
                  "CurrentBalanceWithSubAccounts": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the cumulative balance amount for the current Account and all its sub-accounts.",
                    "readOnly": true
                  },
                  "Description": {
                    "description": "User entered description for the account, which may include user entered information to guide bookkeepers/accountants in deciding what journal entries to post to the account.",
                    "type": "string"
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the object; derived from Name and ParentRef . The fully qualified name prepends the topmost parent, followed by each subaccount separated by colons and takes the form of Parent:Account1:SubAccount1:SubAccount2 . System generated. Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the Parent AccountId if this represents a SubAccount."
                  },
                  "SubAccount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies whether this object represents a parent (false) or subaccount (true). Please note that accounts of these types - OpeningBalanceEquity , UndepositedFunds , RetainedEarnings , CashReceiptIncome , CashExpenditureExpense , ExchangeGainOrLoss cannot have a sub account and cannot be a sub account of another account.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the default tax code used by this account. Tax codes are referenced by the TaxCode.Id in the TaxCode object. For global locales, only."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Account"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Attachable": {
                "additionalProperties": false,
                "properties": {
                  "AttachableRef": {
                    "description": "Specifies the transaction object to which this attachable file is to be linked.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_attachableref"
                    },
                    "type": "array"
                  },
                  "Category": {
                    "description": "Category of the attachment. Valid values include (case sensitive): Contact Photo , Document , Image , Receipt , Signature , Sound , Other .",
                    "type": "string"
                  },
                  "ContentType": {
                    "description": "ContentType of the attachment. Returned for file attachments.",
                    "type": "string"
                  },
                  "FileAccessUri": {
                    "description": "FullPath FileAccess URI of the attachment. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "FileName": {
                    "description": "FileName of the attachment. Required for file attachments.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Lat": {
                    "description": "Latitude from where the attachment was requested.",
                    "type": "string"
                  },
                  "Long": {
                    "description": "Longitude from where the attachment was requested.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Note": {
                    "description": "The note is either related to the attachment specified with the FileName attribute, or as a standalone note. Required for note attachments.",
                    "type": "string"
                  },
                  "PlaceName": {
                    "description": "PlaceName from where the attachment was requested.",
                    "type": "string"
                  },
                  "Size": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Size of the attachment. Returned for file attachments.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Tag": {
                    "description": "Tag name for the requested attachment.",
                    "type": "string"
                  },
                  "TempDownloadUri": {
                    "description": "TempDownload URI which can be directly downloaded by clients. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "ThumbnailFileAccessUri": {
                    "description": "FullPath FileAccess URI of the attachment thumbnail if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "ThumbnailTempDownloadUri": {
                    "description": "Thumbnail TempDownload URI which can be directly downloaded by clients. This is only available if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Attachable"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Attachable": {
                "additionalProperties": false,
                "properties": {
                  "AttachableRef": {
                    "description": "Specifies the transaction object to which this attachable file is to be linked.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_attachableref"
                    },
                    "type": "array"
                  },
                  "Category": {
                    "description": "Category of the attachment. Valid values include (case sensitive): Contact Photo , Document , Image , Receipt , Signature , Sound , Other .",
                    "type": "string"
                  },
                  "ContentType": {
                    "description": "ContentType of the attachment. Returned for file attachments.",
                    "type": "string"
                  },
                  "FileAccessUri": {
                    "description": "FullPath FileAccess URI of the attachment. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "FileName": {
                    "description": "FileName of the attachment. Required for file attachments.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Lat": {
                    "description": "Latitude from where the attachment was requested.",
                    "type": "string"
                  },
                  "Long": {
                    "description": "Longitude from where the attachment was requested.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Note": {
                    "description": "This note is either related to the attachment specified by FileName or is a standalone note. Required for standalone notes.",
                    "type": "string"
                  },
                  "PlaceName": {
                    "description": "PlaceName from where the attachment was requested.",
                    "type": "string"
                  },
                  "Size": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Size of the attachment. Returned for file attachments.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "Tag": {
                    "description": "Tag name for the requested attachment.",
                    "type": "string"
                  },
                  "TempDownloadUri": {
                    "description": "TempDownload URI which can be directly downloaded by clients. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "ThumbnailFileAccessUri": {
                    "description": "FullPath FileAccess URI of the attachment thumbnail if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "ThumbnailTempDownloadUri": {
                    "description": "Thumbnail TempDownload URI which can be directly downloaded by clients. This is only available if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "Attachable"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Attachable": {
                "additionalProperties": false,
                "properties": {
                  "AttachableRef": {
                    "description": "Specifies the transaction object to which this attachable file is to be linked.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_attachableref"
                    },
                    "type": "array"
                  },
                  "Category": {
                    "description": "Category of the attachment. Valid values include (case sensitive): Contact Photo , Document , Image , Receipt , Signature , Sound , Other .",
                    "type": "string"
                  },
                  "ContentType": {
                    "description": "ContentType of the attachment. Returned for file attachments.",
                    "type": "string"
                  },
                  "FileAccessUri": {
                    "description": "FullPath FileAccess URI of the attachment. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "FileName": {
                    "description": "FileName of the attachment. Required for file attachments.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Lat": {
                    "description": "Latitude from where the attachment was requested.",
                    "type": "string"
                  },
                  "Long": {
                    "description": "Longitude from where the attachment was requested.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Note": {
                    "description": "This note is either related to the attachment specified by FileName or is a standalone note. Required for standalone notes.",
                    "type": "string"
                  },
                  "PlaceName": {
                    "description": "PlaceName from where the attachment was requested.",
                    "type": "string"
                  },
                  "Size": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Size of the attachment. Returned for file attachments.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "Tag": {
                    "description": "Tag name for the requested attachment.",
                    "type": "string"
                  },
                  "TempDownloadUri": {
                    "description": "TempDownload URI which can be directly downloaded by clients. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "ThumbnailFileAccessUri": {
                    "description": "FullPath FileAccess URI of the attachment thumbnail if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "ThumbnailTempDownloadUri": {
                    "description": "Thumbnail TempDownload URI which can be directly downloaded by clients. This is only available if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Attachable"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Bill": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "IncludeInAnnualTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Line": {
                    "description": "The minimum line item required for the request.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "VendorRef",
                  "Line"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Bill"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Bill": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IncludeInAnnualTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_itembasedexpenselinebill"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenselinebill"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "Bill"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Bill": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IncludeInAnnualTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_itembasedexpenselinebill"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenselinebill"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Bill"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "BillPayment": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "CheckPayment": {
                    "$ref": "#/components/schemas/qbo_billpaymentcheck",
                    "description": "Reference to the vendor for this transaction. Required when PayType is Check ."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_billpaymentcreditcard",
                    "description": "Information about a credit card payment for the transaction. Not applicable to Estimate and SalesOrder. Required when PayType is CreditCard ."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "Id": {
                    "description": "Unique Identifier for an Intuit entity (object).",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items representing zero or more Bill , VendorCredit , and JournalEntry objects linked to this BillPayment object. Valid Line types include: LinkedTxnLine:",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linelinkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PayType": {
                    "description": "The payment type. Valid values include: Check , CreditCard",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the form.",
                    "type": "string"
                  },
                  "ProcessBillPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates that the payment should be processed by merchant account service. Valid for QuickBooks companies with credit card processing."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the associated with this payment. This includes the total of all the payments from the BillPayment Details."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "VendorRef",
                  "TotalAmt",
                  "Line",
                  "PayType"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "BillPayment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "BillPayment": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "CheckPayment": {
                    "$ref": "#/components/schemas/qbo_billpaymentcheck",
                    "description": "Information about a check payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is Check ."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_billpaymentcreditcard",
                    "description": "Information about a credit card payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is CreditCard ."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .Required if multicurrency is enabled for the company"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items representing zero or more Bill , VendorCredit , and JournalEntry objects linked to this BillPayment object. Use Line.LinkedTxn.TxnId as the ID in a separate Bill, VendorCredit, or JournalEntry read request to retrieve details of the linked object. LinkedTxnLine:",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linelinkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PayType": {
                    "description": "The payment type. Valid values include: Check , CreditCard",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the form.",
                    "type": "string"
                  },
                  "ProcessBillPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates that the payment should be processed by merchant account service. Valid for QuickBooks companies with credit card processing."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount associated with this payment. This includes the total of all the payments from the payment line details. If TotalAmt is greater than the total on the lines being paid, the overpayment is treated as a credit and exposed as such on the QuickBooks UI. It cannot be negative."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "BillPayment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "BillPayment": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "CheckPayment": {
                    "$ref": "#/components/schemas/qbo_billpaymentcheck",
                    "description": "Information about a check payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is Check ."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_billpaymentcreditcard",
                    "description": "Information about a credit card payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is CreditCard ."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .Required if multicurrency is enabled for the company"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items representing zero or more Bill , VendorCredit , and JournalEntry objects linked to this BillPayment object. Use Line.LinkedTxn.TxnId as the ID in a separate Bill, VendorCredit, or JournalEntry read request to retrieve details of the linked object. LinkedTxnLine:",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linelinkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PayType": {
                    "description": "The payment type. Valid values include: Check , CreditCard",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the form.",
                    "type": "string"
                  },
                  "ProcessBillPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates that the payment should be processed by merchant account service. Valid for QuickBooks companies with credit card processing."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount associated with this payment. This includes the total of all the payments from the payment line details. If TotalAmt is greater than the total on the lines being paid, the overpayment is treated as a credit and exposed as such on the QuickBooks UI. It cannot be negative."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "BillPayment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Budget": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                  },
                  "BudgetDetail": {
                    "description": "Container for the budget items.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_budgetdetail"
                    },
                    "type": "array"
                  },
                  "BudgetEntryType": {
                    "description": "Period that this budget detail covers.. Valid values include: Monthly , Quarterly , Annually .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "BudgetType": {
                    "description": "Budget types. The only value currently supported is ProfitAndLoss .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "CustomExtensions": {
                    "$ref": "#/components/schemas/qbo_customextensions",
                    "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                  },
                  "EndDate": {
                    "description": "Budget end date.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                    "readOnly": true,
                    "type": "string"
                  },
                  "StartDate": {
                    "description": "Budget begin date.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "EndDate",
                  "StartDate"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Budget"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Budget": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                  },
                  "BudgetDetail": {
                    "description": "Container for the budget items.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_budgetdetail"
                    },
                    "type": "array"
                  },
                  "BudgetEntryType": {
                    "description": "Period that this budget detail covers.. Valid values include: Monthly , Quarterly , Annually .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "BudgetType": {
                    "description": "Budget types. The only value currently supported is ProfitAndLoss .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "CustomExtensions": {
                    "$ref": "#/components/schemas/qbo_customextensions",
                    "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                  },
                  "EndDate": {
                    "description": "Budget end date.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                    "readOnly": true,
                    "type": "string"
                  },
                  "StartDate": {
                    "description": "Budget begin date.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "Budget"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Budget": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                  },
                  "BudgetDetail": {
                    "description": "Container for the budget items.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_budgetdetail"
                    },
                    "type": "array"
                  },
                  "BudgetEntryType": {
                    "description": "Period that this budget detail covers.. Valid values include: Monthly , Quarterly , Annually .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "BudgetType": {
                    "description": "Budget types. The only value currently supported is ProfitAndLoss .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "CustomExtensions": {
                    "$ref": "#/components/schemas/qbo_customextensions",
                    "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                  },
                  "EndDate": {
                    "description": "Budget end date.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                    "readOnly": true,
                    "type": "string"
                  },
                  "StartDate": {
                    "description": "Budget begin date.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Budget"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "ChangeOrder": {
                "additionalProperties": false,
                "properties": {
                  "AcceptedBy": {
                    "description": "Name of the customer or representative who accepted the change order. Populated when TxnStatus is set to Accepted .",
                    "type": "string"
                  },
                  "AcceptedDate": {
                    "description": "Date the change order was accepted. Populated when TxnStatus is set to Accepted .",
                    "type": "string"
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, sales tax is calculated first and then any discount is applied. If true , the discount is subtracted first and then sales tax is calculated."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Email address where the change order is sent. Required when EmailStatus is set to NeedToSend ."
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; visible on the Change Order document sent to the customer."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the change order (for example, CO-001 ). If not provided, the value is null.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the change order. Valid values: NotSet , NeedToSend , EmailSent .",
                    "type": "string"
                  },
                  "ExpirationDate": {
                    "description": "Date by which the change order must be accepted before it expires.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items describing the work being added or removed. Each line must include a LinkedTxn array referencing the parent project estimate with TxnType: \"Estimate\" . All lines must reference the same parent estimate. Supports SalesItemLineDetail line type.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_salesitemline"
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "One or more linked transaction references at the header level, reflecting the parent project estimate. Also appears on each line item. Use LinkedTxn.TxnId as the ID in a separate Estimate read request to retrieve details of the linked object. TxnType must always be Estimate .",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "Organization-private note about the change order. This note does not appear on documents sent to the customer.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the project this change order belongs to. The project must be active. Without a valid ProjectRef , the change order will not appear in the Projects dashboard."
                  },
                  "SyncToken": {
                    "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 fail. Only the latest version of the object is maintained by QuickBooks Online.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction including all line charges and taxes. Calculated by QuickBooks business logic from the sum of all line Amount values plus applicable tax. Do not include in create or update request bodies; any value supplied is overwritten.",
                    "readOnly": true
                  },
                  "TotalCostAmount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total cost amount of the transaction, calculated from the sum of all line CostAmount values. Calculated by QuickBooks business logic; any value supplied is overwritten.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. If not supplied, the current date on the server is used.",
                    "type": "string"
                  },
                  "TxnStatus": {
                    "description": "Current status of the change order. Valid values: Pending , Accepted , Closed , Rejected .",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "Tax details for the transaction. Captures sales taxes calculated based on tax codes referenced by the transaction lines."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "ProjectRef",
                  "Line",
                  "CustomerRef"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "ChangeOrder"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "ChangeOrder": {
                "additionalProperties": false,
                "properties": {
                  "AcceptedBy": {
                    "description": "Name of the customer or representative who accepted the change order. Populated when TxnStatus is set to Accepted .",
                    "type": "string"
                  },
                  "AcceptedDate": {
                    "description": "Date the change order was accepted. Populated when TxnStatus is set to Accepted .",
                    "type": "string"
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, sales tax is calculated first and then any discount is applied. If true , the discount is subtracted first and then sales tax is calculated."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Email address where the change order is sent. Required when EmailStatus is set to NeedToSend ."
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; visible on the Change Order document sent to the customer."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Use Customer.Id and Customer.DisplayName from the Customer object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the change order (for example, CO-001 ). If not provided, the value is null.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the change order. Valid values: NotSet , NeedToSend , EmailSent .",
                    "type": "string"
                  },
                  "ExpirationDate": {
                    "description": "Date by which the change order must be accepted before it expires.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items describing the work being added or removed. Supports SalesItemLineDetail and SubTotalLineDetail line types. Every line must include a LinkedTxn array referencing the parent project estimate with TxnType: \"Estimate\" . All lines must reference the same parent estimate. The Line array uses full-replace behavior on update — lines omitted from an update request are deleted.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "One or more linked transaction references at the header level, reflecting the parent project estimate. Also appears on each line item. Use LinkedTxn.TxnId as the ID in a separate Estimate read request to retrieve details of the linked object. TxnType must always be Estimate .",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "Organization-private note about the change order. This note does not appear on documents sent to the customer.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the project this change order belongs to. Must reference an active project. Without a valid ProjectRef , the change order will not appear in the Projects dashboard."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction including all line charges and taxes. Calculated by QuickBooks business logic from the sum of all line Amount values plus applicable tax. Do not include in create or update request bodies; any value supplied is overwritten.",
                    "readOnly": true
                  },
                  "TotalCostAmount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total cost amount of the transaction, calculated from the sum of all line CostAmount values. Calculated by QuickBooks business logic; any value supplied is overwritten.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnStatus": {
                    "description": "Current status of the change order. Valid values: Pending (default — created but not yet reviewed), Accepted (customer approved; project contracted total increases accordingly), Closed (converted to an Invoice or manually closed), Rejected (customer declined; does not affect project total).",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "Tax details for the transaction. Captures sales taxes calculated based on tax codes referenced by the transaction lines."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "ChangeOrder"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "ChangeOrder": {
                "additionalProperties": false,
                "properties": {
                  "AcceptedBy": {
                    "description": "Name of the customer or representative who accepted the change order. Populated when TxnStatus is set to Accepted .",
                    "type": "string"
                  },
                  "AcceptedDate": {
                    "description": "Date the change order was accepted. Populated when TxnStatus is set to Accepted .",
                    "type": "string"
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, sales tax is calculated first and then any discount is applied. If true , the discount is subtracted first and then sales tax is calculated."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Email address where the change order is sent. Required when EmailStatus is set to NeedToSend ."
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; visible on the Change Order document sent to the customer."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Use Customer.Id and Customer.DisplayName from the Customer object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the change order (for example, CO-001 ). If not provided, the value is null.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the change order. Valid values: NotSet , NeedToSend , EmailSent .",
                    "type": "string"
                  },
                  "ExpirationDate": {
                    "description": "Date by which the change order must be accepted before it expires.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items describing the work being added or removed. Supports SalesItemLineDetail and SubTotalLineDetail line types. Every line must include a LinkedTxn array referencing the parent project estimate with TxnType: \"Estimate\" . All lines must reference the same parent estimate. The Line array uses full-replace behavior on update — lines omitted from an update request are deleted.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "One or more linked transaction references at the header level, reflecting the parent project estimate. Also appears on each line item. Use LinkedTxn.TxnId as the ID in a separate Estimate read request to retrieve details of the linked object. TxnType must always be Estimate .",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "Organization-private note about the change order. This note does not appear on documents sent to the customer.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the project this change order belongs to. Must reference an active project. Without a valid ProjectRef , the change order will not appear in the Projects dashboard."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction including all line charges and taxes. Calculated by QuickBooks business logic from the sum of all line Amount values plus applicable tax. Do not include in create or update request bodies; any value supplied is overwritten.",
                    "readOnly": true
                  },
                  "TotalCostAmount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total cost amount of the transaction, calculated from the sum of all line CostAmount values. Calculated by QuickBooks business logic; any value supplied is overwritten.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnStatus": {
                    "description": "Current status of the change order. Valid values: Pending (default — created but not yet reviewed), Accepted (customer approved; project contracted total increases accordingly), Closed (converted to an Invoice or manually closed), Rejected (customer declined; does not affect project total).",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "Tax details for the transaction. Captures sales taxes calculated based on tax codes referenced by the transaction lines."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "ChangeOrder"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Class": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub class separated by colons. Takes the form of Parent:Class1:SubClass1:SubClass2 . Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the Class.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "For class objects that are sub-classes: the immediate parent of this object. Required if this object is a subclass."
                  },
                  "SubClass": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies whether this object is a subclass. true --this object represents a subclass. false or null--this object represents a top-level class."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Name"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Class"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Class": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub class separated by colons. Takes the form of Parent:Class1:SubClass1:SubClass2 . Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the Class.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The immediate parent of the SubClass. Required if this object is a subclass."
                  },
                  "SubClass": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies whether this object is a subclass. true --this object represents a subclass. false or null--this object represents a top-level class."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Class"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CompanyCurrency": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates whether this currency is active in the company or not. true --This currency is active and enabled for use by QuickBooks. false --This currency is inactive, is hidden from most display purposes, and is not availble for use with financial transactions."
                  },
                  "Code": {
                    "description": "A three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on.",
                    "type": "string"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "The full name of the currency.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Code"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "CompanyCurrency"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CompanyCurrency": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates whether this currency is active in the company or not. true --This currency is active and enabled for use by QuickBooks. false --This currency is inactive, is hidden from most display purposes, and is not availble for use with financial transactions."
                  },
                  "Code": {
                    "description": "A three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. Click here for a list of supported currency codes.",
                    "type": "string"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "The full name of the currency.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "CompanyCurrency"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CompanyInfo": {
                "additionalProperties": false,
                "properties": {
                  "CompanyAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Company Address as described in preference. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "CompanyName": {
                    "description": "The name of the company.",
                    "type": "string"
                  },
                  "CompanyStartDate": {
                    "description": "DateTime when company file was created. This field and Metadata.CreateTime contain the same value.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Country": {
                    "description": "Country name to which the company belongs for financial calculations.",
                    "type": "string"
                  },
                  "CustomerCommunicationAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address of the company as given to their customer, sometimes the address given to the customer mail address is different from Company address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "Email": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Default email address."
                  },
                  "EmployerId": {
                    "description": "If your QuickBooks company has defined an EIN in company settings, this value is returned.",
                    "type": "string"
                  },
                  "FiscalYearStartMonth": {
                    "description": "The start month of fiscal year.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "LegalAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Legal Address given to the government for any government communication. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "LegalName": {
                    "description": "The legal name of the company.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "NameValue": {
                    "description": "Any other preference not covered with the standard set of attributes. See Data Services Extensions, below, for special reserved name/value pairs. NameValue.Name--Name of the element. NameValue.Value--Value of the element.",
                    "items": {
                      "additionalProperties": true,
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "PrimaryPhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber",
                    "description": "Primary phone number."
                  },
                  "SupportedLanguages": {
                    "description": "Comma separated list of languages.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "WebAddr": {
                    "$ref": "#/components/schemas/qbo_websiteaddress",
                    "description": "Website address."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "CompanyInfo"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CompanyInfo": {
                "additionalProperties": false,
                "properties": {
                  "CompanyAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Company Address as described in preference. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "CompanyName": {
                    "description": "The name of the company.",
                    "type": "string"
                  },
                  "CompanyStartDate": {
                    "description": "DateTime when company file was created. This field and Metadata.CreateTime contain the same value.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Country": {
                    "description": "Country name to which the company belongs for financial calculations.",
                    "type": "string"
                  },
                  "CustomerCommunicationAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address of the company as given to their customer, sometimes the address given to the customer mail address is different from Company address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "Email": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Default email address."
                  },
                  "EmployerId": {
                    "description": "If your QuickBooks company has defined an EIN in company settings, this value is returned.",
                    "type": "string"
                  },
                  "FiscalYearStartMonth": {
                    "description": "The start month of fiscal year.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "LegalAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Legal Address given to the government for any government communication. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "LegalName": {
                    "description": "The legal name of the company.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "NameValue": {
                    "description": "Any other preference not covered with the standard set of attributes. See Data Services Extensions, below, for special reserved name/value pairs. NameValue.Name--Name of the element. NameValue.Value--Value of the element.",
                    "items": {
                      "additionalProperties": true,
                      "type": "object"
                    },
                    "type": "array"
                  },
                  "PrimaryPhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber",
                    "description": "Primary phone number."
                  },
                  "SupportedLanguages": {
                    "description": "Comma separated list of languages.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "WebAddr": {
                    "$ref": "#/components/schemas/qbo_websiteaddress",
                    "description": "Website address."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "CompanyInfo"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CreditCardPayment": {
                "additionalProperties": false,
                "properties": {
                  "Amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the payment. Denominated in the currency of the credit card account."
                  },
                  "BankAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Bank account used to pay the Credit Card balance. Must be a Bank account."
                  },
                  "CheckNum": {
                    "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "CreditCardAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Credit Card account for which a payment is being entered. Must be a Credit Card account."
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Memo": {
                    "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "Date of transaction.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "TxnDate",
                  "Amount",
                  "BankAccountRef",
                  "CreditCardAccountRef"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "CreditCardPayment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CreditCardPayment": {
                "additionalProperties": false,
                "properties": {
                  "Amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction."
                  },
                  "BankAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the bank account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference."
                  },
                  "CheckNum": {
                    "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "CreditCardAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the credit card account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Memo": {
                    "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "CreditCardPayment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CreditCardPayment": {
                "additionalProperties": false,
                "properties": {
                  "Amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the payment. Denominated in the currency of the credit card account."
                  },
                  "BankAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Bank account used to pay the Credit Card balance. Must be a Bank account."
                  },
                  "CheckNum": {
                    "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "CreditCardAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Credit Card account for which a payment is being entered. Must be a Credit Card account."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Memo": {
                    "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "Date of transaction.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "CreditCardPayment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CreditCardPayment": {
                "additionalProperties": false,
                "properties": {
                  "Amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the payment. Denominated in the currency of the credit card account."
                  },
                  "BankAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Bank account used to pay the Credit Card balance. Must be a Bank account."
                  },
                  "CheckNum": {
                    "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "CreditCardAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Credit Card account for which a payment is being entered. Must be a Credit Card account."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Memo": {
                    "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "Date of transaction.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "CreditCardPayment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CreditMemo": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the credit memo. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the credit-memo is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the credit-memo. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "The minimum line item required for the request is one of the following. Sales item line type Group item line type",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively.",
                    "readOnly": true
                  },
                  "PrintStatus": {
                    "description": "Printing status of the credit-memo. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the deposit form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the CreditMemo was created from.",
                    "readOnly": true
                  },
                  "RemainingCredit": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total credit amount still available to apply towards the payment.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Line",
                  "CustomerRef"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "CreditMemo"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CreditMemo": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the credit memo. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the credit-memo is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the credit-memo. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively.",
                    "readOnly": true
                  },
                  "PrintStatus": {
                    "description": "Printing status of the credit-memo. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the deposit form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the CreditMemo was created from.",
                    "readOnly": true
                  },
                  "RemainingCredit": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total credit amount still available to apply towards the payment.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "CreditMemo"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "CreditMemo": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the credit memo. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the credit-memo is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the credit-memo. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively.",
                    "readOnly": true
                  },
                  "PrintStatus": {
                    "description": "Printing status of the credit-memo. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the deposit form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the CreditMemo was created from.",
                    "readOnly": true
                  },
                  "RemainingCredit": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total credit amount still available to apply towards the payment.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "CreditMemo"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Customer": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks. If there is an amount in Customer.Balance when setting this Customer object to inactive through the QuickBooks UI, a CreditMemo balancing transaction is created for the amount."
                  },
                  "AlternatePhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Alternate phone number."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create."
                  },
                  "BalanceWithJobs": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Cumulative open balance amount for the Customer (or Job) and all its sub-jobs. Cannot be written to QuickBooks."
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillWithParent": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this Customer object is billed with its parent. If false, or null the customer is not to be billed with its parent. This attribute is valid only if this entity is a Job or sub Customer."
                  },
                  "CompanyName": {
                    "description": "The name of the company associated with the person or organization.",
                    "type": "string"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the currency in which all amounts associated with this customer are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this customer is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency .",
                    "readOnly": true
                  },
                  "CustomerTypeRef": {
                    "$ref": "#/components/schemas/qbo_customertyperef",
                    "description": "Reference to the customer type assigned to a customer. This field is only returned if the customer is assigned a customer type."
                  },
                  "DefaultTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a default tax code associated with this Customer object. Reference is valid if Customer.Taxable is set to true; otherwise, it is ignored. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the default tax code is set by the system and can not be overridden. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for DefaultTaxCodeRef.value and DefaultTaxCodeRef.name , respectively."
                  },
                  "DisplayName": {
                    "description": "The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                    "type": "string"
                  },
                  "FamilyName": {
                    "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "Fax": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Fax number."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the object. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Customer:Job:Sub-job . System generated. Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "GivenName": {
                    "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "IsProject": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, indicates this is a Project.",
                    "readOnly": true
                  },
                  "Job": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this is a Job or sub-customer. If false or null, this is a top level customer, not a Job or sub-customer."
                  },
                  "Level": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be level with respect to the parent. Constraints: up to 5 levels",
                    "readOnly": true
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "MiddleName": {
                    "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "Mobile": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Mobile phone number."
                  },
                  "Notes": {
                    "description": "Free form text describing the Customer.",
                    "type": "string"
                  },
                  "OpenBalanceDate": {
                    "description": "Date of the Open Balance for the create operation. Write-on-create.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Customer object that is the immediate parent of the Sub-Customer/Job in the hierarchical Customer:Job list. Required for the create operation if this object is a sub-customer or Job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this Customer object. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PreferredDeliveryMethod": {
                    "description": "Preferred delivery method. Values are Print, Email, or None.",
                    "type": "string"
                  },
                  "PrimaryEmailAddr": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Primary email address."
                  },
                  "PrimaryPhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Primary phone number."
                  },
                  "PrimaryTaxIdentifier": {
                    "description": "Also called Tax Reg. No in ( UK ) , ( CA ) , ( IN ) , ( AU ) represents the tax ID of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                    "type": "string"
                  },
                  "PrintOnCheckName": {
                    "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName. Constraints: Cannot be removed with sparse update.",
                    "type": "string"
                  },
                  "ResaleNum": {
                    "description": "Resale number or some additional info about the customer.",
                    "type": "string"
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a SalesTerm associated with this Customer object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "SecondaryTaxIdentifier": {
                    "description": "Also called UTR No. in ( UK ) , CST Reg No. ( IN ) also represents the tax registration number of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                    "type": "string"
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Default shipping address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "Source": {
                    "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                    "type": "string"
                  },
                  "Suffix": {
                    "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxExemptionReasonId": {
                    "description": "The tax exemption reason associated with this customer object. Applicable if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) for the company. Set TaxExemptionReasonId: to one of the following: Id Reason 1 Federal government 2 State government 3 Local government 4 Tribal government 5 Charitable organization 6 Religious organization 7 Educational organization 8 Hospital 9 Resale 10 Direct pay permit 11 Multiple points of use 12 Direct mail 13 Agricultural production 14 Industrial production / manufacturing 15 Foreign diplomat",
                    "type": "string"
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, transactions for this customer are taxable. Default behavior: true, if DefaultTaxCodeRef is defined or false if TaxExemptionReasonId is set."
                  },
                  "Title": {
                    "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , Suffix , or FullyQualifiedName attributes are required during create.",
                    "type": "string"
                  },
                  "WebAddr": {
                    "$ref": "#/components/schemas/qbo_websiteaddress",
                    "description": "Website address."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Customer"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Customer": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks. If there is an amount in Customer.Balance when setting this Customer object to inactive through the QuickBooks UI, a CreditMemo balancing transaction is created for the amount."
                  },
                  "AlternatePhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Alternate phone number."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create."
                  },
                  "BalanceWithJobs": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Cumulative open balance amount for the Customer (or Job) and all its sub-jobs. Cannot be written to QuickBooks."
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillWithParent": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this Customer object is billed with its parent. If false, or null the customer is not to be billed with its parent. This attribute is valid only if this entity is a Job or sub Customer."
                  },
                  "CompanyName": {
                    "description": "The name of the company associated with the person or organization.",
                    "type": "string"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the currency in which all amounts associated with this customer are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this customer is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency .",
                    "readOnly": true
                  },
                  "CustomerTypeRef": {
                    "$ref": "#/components/schemas/qbo_customertyperef",
                    "description": "Reference to the customer type assigned to a customer. This field is only returned if the customer is assigned a customer type."
                  },
                  "DefaultTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a default tax code associated with this Customer object. Reference is valid if Customer.Taxable is set to true; otherwise, it is ignored. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the default tax code is set by the system and can not be overridden. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for DefaultTaxCodeRef.value and DefaultTaxCodeRef.name , respectively."
                  },
                  "DisplayName": {
                    "description": "The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                    "type": "string"
                  },
                  "FamilyName": {
                    "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "Fax": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Fax number."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the object. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Customer:Job:Sub-job . System generated. Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "GivenName": {
                    "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IsProject": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, indicates this is a Project.",
                    "readOnly": true
                  },
                  "Job": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this is a Job or sub-customer. If false or null, this is a top level customer, not a Job or sub-customer."
                  },
                  "Level": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be level with respect to the parent. Constraints: up to 5 levels",
                    "readOnly": true
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "MiddleName": {
                    "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "Mobile": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Mobile phone number."
                  },
                  "Notes": {
                    "description": "Free form text describing the Customer.",
                    "type": "string"
                  },
                  "OpenBalanceDate": {
                    "description": "Date of the Open Balance for the create operation. Write-on-create.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Customer object that is the immediate parent of the Sub-Customer/Job in the hierarchical Customer:Job list. Required for the create operation if this object is a sub-customer or Job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this Customer object. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PreferredDeliveryMethod": {
                    "description": "Preferred delivery method. Values are Print, Email, or None.",
                    "type": "string"
                  },
                  "PrimaryEmailAddr": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Primary email address."
                  },
                  "PrimaryPhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Primary phone number."
                  },
                  "PrimaryTaxIdentifier": {
                    "description": "Also called Tax Reg. No in ( UK ) , ( CA ) , ( IN ) , ( AU ) represents the tax ID of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                    "type": "string"
                  },
                  "PrintOnCheckName": {
                    "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName. Constraints: Cannot be removed with sparse update.",
                    "type": "string"
                  },
                  "ResaleNum": {
                    "description": "Resale number or some additional info about the customer.",
                    "type": "string"
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a SalesTerm associated with this Customer object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "SecondaryTaxIdentifier": {
                    "description": "Also called UTR No. in ( UK ) , CST Reg No. ( IN ) also represents the tax registration number of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                    "type": "string"
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Default shipping address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "Source": {
                    "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                    "type": "string"
                  },
                  "Suffix": {
                    "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionReasonId": {
                    "description": "The tax exemption reason associated with this customer object. Applicable if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) for the company. Set TaxExemptionReasonId: to one of the following: Id Reason 1 Federal government 2 State government 3 Local government 4 Tribal government 5 Charitable organization 6 Religious organization 7 Educational organization 8 Hospital 9 Resale 10 Direct pay permit 11 Multiple points of use 12 Direct mail 13 Agricultural production 14 Industrial production / manufacturing 15 Foreign diplomat",
                    "type": "string"
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, transactions for this customer are taxable. Default behavior: true, if DefaultTaxCodeRef is defined or false if TaxExemptionReasonId is set."
                  },
                  "Title": {
                    "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "WebAddr": {
                    "$ref": "#/components/schemas/qbo_websiteaddress",
                    "description": "Website address."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Customer"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Customer": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks. If there is an amount in Customer.Balance when setting this Customer object to inactive through the QuickBooks UI, a CreditMemo balancing transaction is created for the amount."
                  },
                  "AlternatePhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Alternate phone number."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create."
                  },
                  "BalanceWithJobs": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Cumulative open balance amount for the Customer (or Job) and all its sub-jobs. Cannot be written to QuickBooks."
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillWithParent": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this Customer object is billed with its parent. If false, or null the customer is not to be billed with its parent. This attribute is valid only if this entity is a Job or sub Customer."
                  },
                  "CompanyName": {
                    "description": "The name of the company associated with the person or organization.",
                    "type": "string"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the currency in which all amounts associated with this customer are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this customer is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency .",
                    "readOnly": true
                  },
                  "CustomerTypeRef": {
                    "$ref": "#/components/schemas/qbo_customertyperef",
                    "description": "Reference to the customer type assigned to a customer. This field is only returned if the customer is assigned a customer type."
                  },
                  "DefaultTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a default tax code associated with this Customer object. Reference is valid if Customer.Taxable is set to true; otherwise, it is ignored. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the default tax code is set by the system and can not be overridden. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for DefaultTaxCodeRef.value and DefaultTaxCodeRef.name , respectively."
                  },
                  "DisplayName": {
                    "description": "The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                    "type": "string"
                  },
                  "FamilyName": {
                    "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "Fax": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Fax number."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the object. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Customer:Job:Sub-job . System generated. Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "GivenName": {
                    "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IsProject": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, indicates this is a Project.",
                    "readOnly": true
                  },
                  "Job": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this is a Job or sub-customer. If false or null, this is a top level customer, not a Job or sub-customer."
                  },
                  "Level": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be level with respect to the parent. Constraints: up to 5 levels",
                    "readOnly": true
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "MiddleName": {
                    "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "Mobile": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Mobile phone number."
                  },
                  "Notes": {
                    "description": "Free form text describing the Customer.",
                    "type": "string"
                  },
                  "OpenBalanceDate": {
                    "description": "Date of the Open Balance for the create operation. Write-on-create.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Customer object that is the immediate parent of the Sub-Customer/Job in the hierarchical Customer:Job list. Required for the create operation if this object is a sub-customer or Job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this Customer object. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PreferredDeliveryMethod": {
                    "description": "Preferred delivery method. Values are Print, Email, or None.",
                    "type": "string"
                  },
                  "PrimaryEmailAddr": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Primary email address."
                  },
                  "PrimaryPhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Primary phone number."
                  },
                  "PrimaryTaxIdentifier": {
                    "description": "Also called Tax Reg. No in ( UK ) , ( CA ) , ( IN ) , ( AU ) represents the tax ID of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                    "type": "string"
                  },
                  "PrintOnCheckName": {
                    "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName. Constraints: Cannot be removed with sparse update.",
                    "type": "string"
                  },
                  "ResaleNum": {
                    "description": "Resale number or some additional info about the customer.",
                    "type": "string"
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a SalesTerm associated with this Customer object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "SecondaryTaxIdentifier": {
                    "description": "Also called UTR No. in ( UK ) , CST Reg No. ( IN ) also represents the tax registration number of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                    "type": "string"
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Default shipping address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "Source": {
                    "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                    "type": "string"
                  },
                  "Suffix": {
                    "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionReasonId": {
                    "description": "The tax exemption reason associated with this customer object. Applicable if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) for the company. Set TaxExemptionReasonId: to one of the following: Id Reason 1 Federal government 2 State government 3 Local government 4 Tribal government 5 Charitable organization 6 Religious organization 7 Educational organization 8 Hospital 9 Resale 10 Direct pay permit 11 Multiple points of use 12 Direct mail 13 Agricultural production 14 Industrial production / manufacturing 15 Foreign diplomat",
                    "type": "string"
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, transactions for this customer are taxable. Default behavior: true, if DefaultTaxCodeRef is defined or false if TaxExemptionReasonId is set."
                  },
                  "Title": {
                    "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                    "type": "string"
                  },
                  "WebAddr": {
                    "$ref": "#/components/schemas/qbo_websiteaddress",
                    "description": "Website address."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Customer"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Department": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks. If set to false, this entity is not available."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Parent:Department1:SubDepartment1:SubDepartment2 . Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the department.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The immediate parent of the SubDepartment. Required for the create operation if this object is a SubDepartment. Required if this object is a subdepartment"
                  },
                  "SubDepartment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies whether this Department object is a SubDepartment. true --SubDepartment. false or null--top-level Department.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Name"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Department"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Department": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks. If set to false, this entity is not available."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Parent:Department1:SubDepartment1:SubDepartment2 . Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the Department.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The immediate parent of the SubDepartment. Required for the create operation if this object is a SubDepartment. Required if this object is a subdepartment."
                  },
                  "SubDepartment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies whether this Department object is a SubDepartment. true --SubDepartment. false or null--top-level Department.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Department"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Deposit": {
                "additionalProperties": false,
                "properties": {
                  "CashBack": {
                    "$ref": "#/components/schemas/qbo_cashbackinfo"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: DepositLine",
                    "items": {
                      "$ref": "#/components/schemas/qbo_depositline"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Deposit"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Deposit": {
                "additionalProperties": false,
                "properties": {
                  "CashBack": {
                    "$ref": "#/components/schemas/qbo_cashbackinfo"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_linelinkedtxn"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_depositline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "Deposit"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Deposit": {
                "additionalProperties": false,
                "properties": {
                  "CashBack": {
                    "$ref": "#/components/schemas/qbo_cashbackinfo"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_linelinkedtxn"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_depositline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Deposit"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Deposit": {
                "additionalProperties": false,
                "properties": {
                  "CashBack": {
                    "$ref": "#/components/schemas/qbo_cashbackinfo"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_linelinkedtxn"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_depositline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Deposit"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Employee": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "BillRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "This attribute can only be set if BillableTime is true. Not supported when QuickBooks Payroll is enabled."
                  },
                  "BillableTime": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "BirthDate": {
                    "description": "Birth date of the employee.",
                    "type": "string"
                  },
                  "CostRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Pay rate of the employee"
                  },
                  "DisplayName": {
                    "description": "The name of the person or organization as displayed. Default Value: If not supplied, the system generates DisplayName by concatenating employee name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix . When QuickBooks Payroll is enabled, this attribute is read-only and a concatenation of GivenName , MiddleName , and FamilyName .",
                    "type": "string"
                  },
                  "EmployeeNumber": {
                    "description": "Specifies the ID number of the employee in the employer's directory.",
                    "type": "string"
                  },
                  "FamilyName": {
                    "description": "Family name or the last name of the person. At least one of GivenName or FamilyName attributes is required.",
                    "type": "string"
                  },
                  "Gender": {
                    "description": "Gender of the employee. To clear the gender value, set to Null in a full update request. Supported values include: Male or Female .",
                    "type": "string"
                  },
                  "GivenName": {
                    "description": "Given name or Family name of a person. At least one of GivenName or FamilyName attributes is required.",
                    "type": "string"
                  },
                  "HiredDate": {
                    "description": "Hire date of the employee.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "MiddleName": {
                    "description": "Middle name of the person. The person can have zero or more middle names.",
                    "type": "string"
                  },
                  "Mobile": {
                    "$ref": "#/components/schemas/qbo_telephonenumber",
                    "description": "Mobile phone number."
                  },
                  "Organization": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "true --the object represents an organization. false --the object represents a person."
                  },
                  "PrimaryAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Represents the physical street address for this employee. If QuickBooks Payroll is enabled for the company, the following PhysicalAddress fields are required: City , maximum of 255 chars CountrySubDivisionCode , maximum of 255 chars PostalCode Required when QuickBooks Payroll is enabled. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "PrimaryEmailAddr": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Primary email address."
                  },
                  "PrimaryPhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber",
                    "description": "Primary phone number."
                  },
                  "PrintOnCheckName": {
                    "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update. Not supported when QuickBooks Payroll is enabled.",
                    "type": "string"
                  },
                  "ReleasedDate": {
                    "description": "Release date of the employee.",
                    "type": "string"
                  },
                  "SSN": {
                    "description": "Social security number (SSN) of the employee. If SSN is set, it is masked in the response with XXX-XX-XXXX. If XXX-XX-XXXX is sent in the create or update request, XXX-XX-XXXX is ignored and the old value is preserved. This attribute cannot be passed in a request when QuickBooks Payroll is enabled. Code for this field must be removed before submitting.",
                    "type": "string"
                  },
                  "Suffix": {
                    "description": "Suffix of the name. For example, Jr . Not supported when QuickBooks Payroll is enabled.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Title": {
                    "description": "Title of the person. This tag supports i18n, all locale. Not supported when QuickBooks Payroll is enabled.",
                    "type": "string"
                  },
                  "V4IDPseudonym": {
                    "description": "Employee reference number. For internal use only.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Employee"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Employee": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "BillRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "This attribute can only be set if BillableTime is true. Not supported when QuickBooks Payroll is enabled."
                  },
                  "BillableTime": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "BirthDate": {
                    "description": "Birth date of the employee.",
                    "type": "string"
                  },
                  "CostRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Pay rate of the employee"
                  },
                  "DisplayName": {
                    "description": "The name of the person or organization as displayed. Default Value: If not supplied, the system generates DisplayName by concatenating employee name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix . When QuickBooks Payroll is enabled, this attribute is read-only and a concatenation of GivenName , MiddleName , and FamilyName .",
                    "type": "string"
                  },
                  "EmployeeNumber": {
                    "description": "Specifies the ID number of the employee in the employer's directory.",
                    "type": "string"
                  },
                  "FamilyName": {
                    "description": "Family name or the last name of the person. At least one of GivenName or FamilyName attributes is required.",
                    "type": "string"
                  },
                  "Gender": {
                    "description": "Gender of the employee. To clear the gender value, set to Null in a full update request. Supported values include: Male or Female .",
                    "type": "string"
                  },
                  "GivenName": {
                    "description": "Given name or family name of a person. At least one of GivenName or FamilyName attributes is required.",
                    "type": "string"
                  },
                  "HiredDate": {
                    "description": "Hire date of the employee.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "MiddleName": {
                    "description": "Middle name of the person. The person can have zero or more middle names.",
                    "type": "string"
                  },
                  "Mobile": {
                    "$ref": "#/components/schemas/qbo_telephonenumber",
                    "description": "Mobile phone number."
                  },
                  "Organization": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "true --the object represents an organization. false --the object represents a person."
                  },
                  "PrimaryAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Represents the physical street address for this employee. If QuickBooks Payroll is enabled for the company, the following PhysicalAddress fields are required: City , maximum of 255 chars CountrySubDivisionCode , maximum of 255 chars PostalCode Required when QuickBooks Payroll is enabled. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "PrimaryEmailAddr": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Primary email address."
                  },
                  "PrimaryPhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber",
                    "description": "Primary phone number."
                  },
                  "PrintOnCheckName": {
                    "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update. Not supported when QuickBooks Payroll is enabled.",
                    "type": "string"
                  },
                  "ReleasedDate": {
                    "description": "Release date of the employee.",
                    "type": "string"
                  },
                  "SSN": {
                    "description": "Social security number (SSN) of the employee. If SSN is set, it is masked in the response with XXX-XX-XXXX. If XXX-XX-XXXX is sent in the create or update request, XXX-XX-XXXX is ignored and the old value is preserved. This attribute cannot be passed in a request when QuickBooks Payroll is enabled. Code for this field must be removed before submitting.",
                    "type": "string"
                  },
                  "Suffix": {
                    "description": "Suffix of the name. For example, Jr . Not supported when QuickBooks Payroll is enabled.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "Title": {
                    "description": "Title of the person. This tag supports i18n, all locale. Not supported when QuickBooks Payroll is enabled.",
                    "type": "string"
                  },
                  "V4IDPseudonym": {
                    "description": "Employee reference number. For internal use only.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Employee"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Estimate": {
                "additionalProperties": false,
                "properties": {
                  "AcceptedBy": {
                    "description": "Name of customer who accepted the estimate.",
                    "type": "string"
                  },
                  "AcceptedDate": {
                    "description": "Date estimate was accepted.",
                    "type": "string"
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "ExpirationDate": {
                    "description": "Date by which estimate must be accepted before invalidation.",
                    "type": "string"
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "The minimum line item required for the request is one of the following. Sales item line type Group item line type",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Date for delivery of goods or services.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnStatus": {
                    "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Line",
                  "CustomerRef"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Estimate"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Estimate": {
                "additionalProperties": false,
                "properties": {
                  "AcceptedBy": {
                    "description": "Name of customer who accepted the estimate.",
                    "type": "string"
                  },
                  "AcceptedDate": {
                    "description": "Date estimate was accepted.",
                    "type": "string"
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "ExpirationDate": {
                    "description": "Date by which estimate must be accepted before invalidation.",
                    "type": "string"
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Date for delivery of goods or services.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnStatus": {
                    "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "Estimate"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Estimate": {
                "additionalProperties": false,
                "properties": {
                  "AcceptedBy": {
                    "description": "Name of customer who accepted the estimate.",
                    "type": "string"
                  },
                  "AcceptedDate": {
                    "description": "Date estimate was accepted.",
                    "type": "string"
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "ExpirationDate": {
                    "description": "Date by which estimate must be accepted before invalidation.",
                    "type": "string"
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Date for delivery of goods or services.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnStatus": {
                    "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Estimate"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Estimate": {
                "additionalProperties": false,
                "properties": {
                  "AcceptedBy": {
                    "description": "Name of customer who accepted the estimate.",
                    "type": "string"
                  },
                  "AcceptedDate": {
                    "description": "Date estimate was accepted.",
                    "type": "string"
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "ExpirationDate": {
                    "description": "Date by which estimate must be accepted before invalidation.",
                    "type": "string"
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Date for delivery of goods or services.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnStatus": {
                    "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Estimate"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Exchangerate": {
                "additionalProperties": false,
                "properties": {
                  "AsOfDate": {
                    "description": "Date on which this exchange rate was set.",
                    "type": "string"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Rate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The exchange rate between SourceCurrencyCode and TargetCurrencyCode on the AsOfDate date."
                  },
                  "SourceCurrencyCode": {
                    "description": "The source currency from which the exchange rate is specified, and usually. Specify as a three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. For example, in the equation 65 INR = 1 USD , INR is the source currency.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TargetCurrencyCode": {
                    "description": "The target currency against which the exchange rate is specified. Specify as a three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. For example, in the equation 65 INR = 1 USD , USA is the target currency.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Exchangerate"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "InventoryAdjustment": {
                "additionalProperties": false,
                "properties": {
                  "AdjustAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of an inventory adjustment.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_itemadjustmentline"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "DocNumber",
                  "AdjustAccountRef",
                  "Line",
                  "TxnDate"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "InventoryAdjustment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "InventoryAdjustment": {
                "additionalProperties": false,
                "properties": {
                  "AdjustAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively.",
                    "readOnly": true
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of an inventory adjustment.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_itemadjustmentline"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "InventoryAdjustment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "InventoryAdjustment": {
                "additionalProperties": false,
                "properties": {
                  "AdjustAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively.",
                    "readOnly": true
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of an inventory adjustment.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_itemadjustmentline"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "InventoryAdjustment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Invoice": {
                "additionalProperties": false,
                "properties": {
                  "AllowIPNPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                  },
                  "AllowOnlineACHPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlineAffirmPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlineCreditCardPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlinePayPalPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlinePayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "BillEmailBcc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                  },
                  "BillEmailCc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DeliveryInfo": {
                    "$ref": "#/components/schemas/qbo_deliveryinfo",
                    "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                    "readOnly": true
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "Deposit": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The deposit made towards this invoice."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "InvoiceLink": {
                    "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "The minimum line item required for the request is one of the following. SalesItemLine , GroupLine and Inline subtotal using DescriptionOnlyLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Date for delivery of goods or services.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                        "readOnly": true
                      },
                      {
                        "maxProperties": 0,
                        "type": "object"
                      }
                    ]
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TrackingNum": {
                    "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                    "type": "string"
                  },
                  "TransactionLocationType": {
                    "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "CustomerRef",
                  "Line"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Invoice"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Invoice": {
                "additionalProperties": false,
                "properties": {
                  "AllowIPNPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                  },
                  "AllowOnlineACHPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlineAffirmPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlineCreditCardPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlinePayPalPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlinePayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "BillEmailBcc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                  },
                  "BillEmailCc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DeliveryInfo": {
                    "$ref": "#/components/schemas/qbo_deliveryinfo",
                    "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                    "readOnly": true
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "Deposit": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The deposit made towards this invoice."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "InvoiceLink": {
                    "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Date for delivery of goods or services.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                        "readOnly": true
                      },
                      {
                        "maxProperties": 0,
                        "type": "object"
                      }
                    ]
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TrackingNum": {
                    "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                    "type": "string"
                  },
                  "TransactionLocationType": {
                    "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "Invoice"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Invoice": {
                "additionalProperties": false,
                "properties": {
                  "AllowIPNPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                  },
                  "AllowOnlineACHPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlineAffirmPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlineCreditCardPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlinePayPalPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlinePayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "BillEmailBcc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                  },
                  "BillEmailCc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DeliveryInfo": {
                    "$ref": "#/components/schemas/qbo_deliveryinfo",
                    "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                    "readOnly": true
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "Deposit": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The deposit made towards this invoice."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "InvoiceLink": {
                    "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "The minimum line item required for the request is one of the following. SalesItemLine , GroupLine and Inline subtotal using DescriptionOnlyLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Date for delivery of goods or services.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                        "readOnly": true
                      },
                      {
                        "maxProperties": 0,
                        "type": "object"
                      }
                    ]
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TrackingNum": {
                    "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                    "type": "string"
                  },
                  "TransactionLocationType": {
                    "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Invoice"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Invoice": {
                "additionalProperties": false,
                "properties": {
                  "AllowIPNPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                  },
                  "AllowOnlineACHPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlineAffirmPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlineCreditCardPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlinePayPalPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlinePayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "BillEmailBcc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                  },
                  "BillEmailCc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DeliveryInfo": {
                    "$ref": "#/components/schemas/qbo_deliveryinfo",
                    "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                    "readOnly": true
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "Deposit": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The deposit made towards this invoice."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "InvoiceLink": {
                    "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Date for delivery of goods or services.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                        "readOnly": true
                      },
                      {
                        "maxProperties": 0,
                        "type": "object"
                      }
                    ]
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TrackingNum": {
                    "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                    "type": "string"
                  },
                  "TransactionLocationType": {
                    "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Invoice"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Invoice": {
                "additionalProperties": false,
                "properties": {
                  "AllowIPNPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                  },
                  "AllowOnlineACHPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlineAffirmPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlineCreditCardPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                  },
                  "AllowOnlinePayPalPayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                  },
                  "AllowOnlinePayment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                  },
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "BillEmailBcc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                  },
                  "BillEmailCc": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DeliveryInfo": {
                    "$ref": "#/components/schemas/qbo_deliveryinfo",
                    "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                    "readOnly": true
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "Deposit": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The deposit made towards this invoice."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "InvoiceLink": {
                    "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Date for delivery of goods or services.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                        "readOnly": true
                      },
                      {
                        "maxProperties": 0,
                        "type": "object"
                      }
                    ]
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TrackingNum": {
                    "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                    "type": "string"
                  },
                  "TransactionLocationType": {
                    "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              },
              "optionsData": {
                "const": "void"
              }
            },
            "required": [
              "bId",
              "operation",
              "Invoice",
              "optionsData"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Item": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, the object is currently enabled for use by QuickBooks."
                  },
                  "AssetAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CustomExtensions": {
                    "$ref": "#/components/schemas/qbo_customextensions",
                    "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                  },
                  "Description": {
                    "description": "Description of the item.",
                    "type": "string"
                  },
                  "ExpenseAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. Required for Inventory , NonInventory , and Service item types."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Item:SubItem . Returned from an existing object and not input on a new object.Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "IncomeAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. Required for Inventory and Service item types."
                  },
                  "InvStartDate": {
                    "description": "Date of opening balance for the inventory transaction. For read operations, the date returned in this field is always the originally provided inventory start date. For update operations, the date supplied is interpreted as the inventory adjust date, is stored as such in the underlying data model, and is reflected in the QuickBooks Online UI for the object. The inventory adjust date is not exposed for read operations through the API. Required for Inventory type items.",
                    "type": "string"
                  },
                  "Level": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be the next level with respect to the parent. Limited to 5 levels.",
                    "readOnly": true
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "Name of the category.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The immediate parent of the sub item in the hierarchical Category:Sub-category list. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PrefVendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PurchaseCost": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
                  },
                  "PurchaseDesc": {
                    "description": "Purchase description for the item.",
                    "type": "string"
                  },
                  "PurchaseTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
                  },
                  "PurchaseTaxIncluded": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
                  },
                  "QtyOnHand": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
                  },
                  "ReorderPoint": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
                  },
                  "SalesTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
                  },
                  "SalesTaxIncluded": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
                  },
                  "Sku": {
                    "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
                    "type": "string"
                  },
                  "Source": {
                    "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                    "type": "string"
                  },
                  "SubItem": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "true --The object is a sub-category. false --The object is a top-level category (default). Sub-categories can be nested to a maximum depth of three levels below a top-level category. Required for sub-category."
                  },
                  "SyncToken": {
                    "description": "Version number of the entity. Required for the update operation.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxClassificationRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
                  },
                  "TrackQtyOnHand": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
                  },
                  "Type": {
                    "description": "Must be set to the literal string, Category .",
                    "type": "string"
                  },
                  "UnitPrice": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Type",
                  "Name"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Item"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Item": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, the object is currently enabled for use by QuickBooks."
                  },
                  "AssetAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Must be an account with account type of Other Current Asset . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CustomExtensions": {
                    "$ref": "#/components/schemas/qbo_customextensions",
                    "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                  },
                  "Description": {
                    "description": "Description of the item.",
                    "type": "string"
                  },
                  "ExpenseAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. For France locales: This is an optional field. This is the purchase account id, If not provided it defaults to the default purchase account: 605100 and 601100 are the default expense accounts used for Service and Product type of item, respectively. Required for Inventory , NonInventory , and Service item types."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Item:SubItem . Returned from an existing object and not input on a new object.Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "IncomeAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. For France locales: This is an optional field. This is the sales account id, If not provided it defaults to the default sales account: 706100 and 707100 are the default expense accounts used for Service and Product type of item, respectively. Required for Inventory and Service item types."
                  },
                  "InvStartDate": {
                    "description": "Date of opening balance for the inventory transaction. Required when creating an Item.Type=Inventory . Required for Inventory item types.",
                    "type": "string"
                  },
                  "Level": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be the next level with respect to the parent. Limited to 5 levels.",
                    "readOnly": true
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "Name of the item. This value must be unique, at least one character in length, and cannot include tabs, new lines, or colons. Required for create.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The immediate parent of the sub item in the hierarchical Item:SubItem list. If SubItem is true, then ParenRef is required. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PrefVendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PurchaseCost": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
                  },
                  "PurchaseDesc": {
                    "description": "Purchase description for the item.",
                    "type": "string"
                  },
                  "PurchaseTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
                  },
                  "PurchaseTaxIncluded": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
                  },
                  "QtyOnHand": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
                  },
                  "ReorderPoint": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
                  },
                  "SalesTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
                  },
                  "SalesTaxIncluded": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
                  },
                  "Sku": {
                    "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
                    "type": "string"
                  },
                  "Source": {
                    "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                    "type": "string"
                  },
                  "SubItem": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this is a sub item. If false or null, this is a top-level item. Creating inventory hierarchies with traditional inventory items is being phased out in lieu of using categories and sub categories."
                  },
                  "SyncToken": {
                    "description": "Version number of the entity. Required for the update operation.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxClassificationRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
                  },
                  "TrackQtyOnHand": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
                  },
                  "Type": {
                    "description": "Classification that specifies the use of this item. See the description at the top of the Item entity page for details about supported item types. Used for goods the company sells and buys that are tracked as inventory. Service --Default setting when TrackQtyOnHand , InvStartDate , and AssetAccountRef are not specified. Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. This field is required to be explicitly set with one of the following: Inventory --Used for goods the company sells and buys that are tracked as inventory. Service --Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. NonInventory --Use for goods the company sells and buys that are not tracked as inventory. For example, office supplies or goods bought on behalf of the customer. .",
                    "type": "string"
                  },
                  "UnitPrice": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Name"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Item"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Item": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, the object is currently enabled for use by QuickBooks."
                  },
                  "AssetAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CustomExtensions": {
                    "$ref": "#/components/schemas/qbo_customextensions",
                    "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                  },
                  "Description": {
                    "description": "Description of the item.",
                    "type": "string"
                  },
                  "ExpenseAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. Required for Inventory , NonInventory , and Service item types."
                  },
                  "FullyQualifiedName": {
                    "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Item:SubItem . Returned from an existing object and not input on a new object.Limited to 5 levels.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IncomeAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. Required for Inventory and Service item types."
                  },
                  "InvStartDate": {
                    "description": "Date of opening balance for the inventory transaction. For read operations, the date returned in this field is always the originally provided inventory start date. For update operations, the date supplied is interpreted as the inventory adjust date, is stored as such in the underlying data model, and is reflected in the QuickBooks Online UI for the object. The inventory adjust date is not exposed for read operations through the API. Required for Inventory type items.",
                    "type": "string"
                  },
                  "Level": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be the next level with respect to the parent. Limited to 5 levels.",
                    "readOnly": true
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "Name of the item. This value is unique.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The immediate parent of the sub item in the hierarchical Item:SubItem list. If SubItem is true, then ParenRef is required. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PrefVendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PurchaseCost": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
                  },
                  "PurchaseDesc": {
                    "description": "Purchase description for the item.",
                    "type": "string"
                  },
                  "PurchaseTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
                  },
                  "PurchaseTaxIncluded": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
                  },
                  "QtyOnHand": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
                  },
                  "ReorderPoint": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
                  },
                  "SalesTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
                  },
                  "SalesTaxIncluded": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
                  },
                  "Sku": {
                    "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
                    "type": "string"
                  },
                  "Source": {
                    "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                    "type": "string"
                  },
                  "SubItem": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this is a sub item. If false or null, this is a top-level item. Creating inventory hierarchies with traditional inventory items is being phased out in lieu of using categories and sub categories."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxClassificationRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
                  },
                  "TrackQtyOnHand": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
                  },
                  "Type": {
                    "description": "Classification that specifies the use of this item. See the description at the top of the Item entity page for details about supported item types. This field is required to be explicitly set with one of the following: Inventory --Used for goods the company sells and buys that are tracked as inventory. Service --Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. NonInventory --Use for goods the company sells and buys that are not tracked as inventory. For example, office supplies or goods bought on behalf of the customer. .",
                    "type": "string"
                  },
                  "UnitPrice": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Item"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Item": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "For categories, this is always set to true ."
                  },
                  "AssetAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CustomExtensions": {
                    "$ref": "#/components/schemas/qbo_customextensions",
                    "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                  },
                  "Description": {
                    "description": "Description of the item.",
                    "type": "string"
                  },
                  "ExpenseAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. Required for Inventory , NonInventory , and Service item types."
                  },
                  "FullyQualifiedName": {
                    "description": "Colon-separated list of the top-level category, followed by each sub-category in the hierarchy. Takes the form of Category:SubCategory1:SubCategory2:... . Limited to 5 levels: 4 category levels with an inventory, non-inventory, or service item as the 5th.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IncomeAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. Required for Inventory and Service item types."
                  },
                  "InvStartDate": {
                    "description": "Date of opening balance for the inventory transaction. For read operations, the date returned in this field is always the originally provided inventory start date. For update operations, the date supplied is interpreted as the inventory adjust date, is stored as such in the underlying data model, and is reflected in the QuickBooks Online UI for the object. The inventory adjust date is not exposed for read operations through the API. Required for Inventory type items.",
                    "type": "string"
                  },
                  "Level": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the level of the hierarchy in which the object is located. First sub-category level below the top-most category is 1. Returned in the response body only when SubItem is set to true . Sub-categories can be nested to a maximum depth of three levels below a top-level category.",
                    "readOnly": true
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "Name of the category.",
                    "type": "string"
                  },
                  "ParentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The immediate parent of the sub item in the hierarchical Category:Sub-category list. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PrefVendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
                  },
                  "PurchaseCost": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
                  },
                  "PurchaseDesc": {
                    "description": "Purchase description for the item.",
                    "type": "string"
                  },
                  "PurchaseTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
                  },
                  "PurchaseTaxIncluded": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
                  },
                  "QtyOnHand": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
                  },
                  "ReorderPoint": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
                  },
                  "SalesTaxCodeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
                  },
                  "SalesTaxIncluded": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
                  },
                  "Sku": {
                    "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
                    "type": "string"
                  },
                  "Source": {
                    "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                    "type": "string"
                  },
                  "SubItem": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "true --The object is a sub-category. false --The object is a top-level category (default). Sub-categories can be nested to a maximum depth of three levels below a top-level category. Required if this is a sub-category object."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxClassificationRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
                  },
                  "TrackQtyOnHand": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
                  },
                  "Type": {
                    "description": "Must be set to the literal string, Category .",
                    "type": "string"
                  },
                  "UnitPrice": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Item"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "JournalEntry": {
                "additionalProperties": false,
                "properties": {
                  "Adjustment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates whether this transaction is a journal entry adjustment."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a journal entry. Two line items are required: one with PostingType set to Debit and one with PostingType set to Credit . Set Line.DetailType to JournalEntryLine for both lines.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_journalentryline"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxRateRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Line"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "JournalEntry"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "JournalEntry": {
                "additionalProperties": false,
                "properties": {
                  "Adjustment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates whether this transaction is a journal entry adjustment."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_journalentryline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxRateRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "JournalEntry"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "JournalEntry": {
                "additionalProperties": false,
                "properties": {
                  "Adjustment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates whether this transaction is a journal entry adjustment."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_journalentryline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxRateRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "JournalEntry"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "JournalEntry": {
                "additionalProperties": false,
                "properties": {
                  "Adjustment": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates whether this transaction is a journal entry adjustment."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_journalentryline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxRateRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "JournalEntry"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Payment": {
                "additionalProperties": false,
                "properties": {
                  "ARAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype"
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a payment received by credit card. Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the account to be used for this payment. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Zero or more transactions accounting for this payment. Values for Line.LinkedTxn.TxnType can be one of the following: Expense --Payment is reimbursement for expense paid by cash made on behalf of the customer Check --Payment is reimbursement for expense paid by check made on behalf of the customer CreditCardCredit --Payment is reimbursement for a credit card credit made on behalf of the customer JournalEntry --Payment is linked to the representative journal entry CreditMemo --Payment is linked to the credit memo the customer has with the business Invoice --The invoice to which payment is applied Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linelinkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, Check # for a check, envelope # for a cash donation.",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction.",
                    "type": "string"
                  },
                  "ProcessPayment": {
                    "type": "boolean"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes."
                  },
                  "TransactionLocationType": {
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnStatus": {
                    "type": "string"
                  },
                  "UnappliedAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the amount that has not been applied to pay amounts owed for sales transactions.",
                    "readOnly": true
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "string"
                  }
                },
                "required": [
                  "TotalAmt",
                  "CustomerRef"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Payment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Payment": {
                "additionalProperties": false,
                "properties": {
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a payment received by credit card. Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the account to be used for this payment. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Zero or more transactions accounting for this payment. Values for Line.LinkedTxn.TxnType can be one of the following: Expense --Payment is reimbursement for expense paid by cash made on behalf of the customer Check --Payment is reimbursement for expense paid by check made on behalf of the customer CreditCardCredit --Payment is reimbursement for a credit card credit made on behalf of the customer JournalEntry --Payment is linked to the representative journal entry CreditMemo --Payment is linked to the credit memo the customer has with the business Invoice --The invoice to which payment is applied Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linelinkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, Check # for a check, envelope # for a cash donation.",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "UnappliedAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the amount that has not been applied to pay amounts owed for sales transactions.",
                    "readOnly": true
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "Payment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Payment": {
                "additionalProperties": false,
                "properties": {
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a payment received by credit card. Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the account to be used for this payment. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Zero or more transactions accounting for this payment. Values for Line.LinkedTxn.TxnType can be one of the following: Expense --Payment is reimbursement for expense paid by cash made on behalf of the customer Check --Payment is reimbursement for expense paid by check made on behalf of the customer CreditCardCredit --Payment is reimbursement for a credit card credit made on behalf of the customer JournalEntry --Payment is linked to the representative journal entry CreditMemo --Payment is linked to the credit memo the customer has with the business Invoice --The invoice to which payment is applied Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linelinkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, Check # for a check, envelope # for a cash donation.",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "UnappliedAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the amount that has not been applied to pay amounts owed for sales transactions.",
                    "readOnly": true
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Payment"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "PaymentMethod": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the payment method.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Type": {
                    "description": "Defines the type of payment. Valid values include CREDIT_CARD or NON_CREDIT_CARD .",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Name"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "PaymentMethod"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "PaymentMethod": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the payment method.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "Type": {
                    "description": "Defines the type of payment. Valid values include CREDIT_CARD or NON_CREDIT_CARD .",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "PaymentMethod"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Preferences": {
                "additionalProperties": false,
                "properties": {
                  "AccountingInfoPrefs": {
                    "$ref": "#/components/schemas/qbo_accountinginfoprefs",
                    "description": "The following settings are available for QuickBooks Online Plus editions, only. To determine this edition type, query the value of the OfferingSku CustomerInfo.Name name/value pair for QuickBooks Online Plus ."
                  },
                  "CurrencyPrefs": {
                    "$ref": "#/components/schemas/qbo_currencyprefs"
                  },
                  "EmailMessagesPrefs": {
                    "$ref": "#/components/schemas/qbo_emailmessagesprefs"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "OtherPrefs": {
                    "additionalProperties": true,
                    "description": "Specifies extension of Preference resource to allow extension of Name-Value pair based extension at the top level.",
                    "type": "object"
                  },
                  "ProductAndServicesPrefs": {
                    "$ref": "#/components/schemas/qbo_productandservicesprefs"
                  },
                  "ReportPrefs": {
                    "$ref": "#/components/schemas/qbo_reportprefs"
                  },
                  "SalesFormsPrefs": {
                    "$ref": "#/components/schemas/qbo_salesformspref"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxPrefs": {
                    "$ref": "#/components/schemas/qbo_taxprefs"
                  },
                  "TimeTrackingPrefs": {
                    "$ref": "#/components/schemas/qbo_timetrackingprefs"
                  },
                  "VendorAndPurchasesPrefs": {
                    "$ref": "#/components/schemas/qbo_vendorandpurchaseprefs"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Preferences"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Purchase": {
                "additionalProperties": false,
                "properties": {
                  "AccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the account reference. Check must specify bank account, CreditCard must specify credit card account. Validation Rules:Valid and Active Account Reference of an appropriate type."
                  },
                  "Credit": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "EntityRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "IncludeInAnnualTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line type for create: AccountBasedExpenseLine",
                    "items": {
                      "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentType": {
                    "description": "Payment Type can be: Cash , Check , or CreditCard .",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
                    "type": "string"
                  },
                  "PurchaseEx": {
                    "additionalProperties": true,
                    "description": "For internal use.",
                    "type": "object"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
                    "readOnly": true
                  },
                  "RemitToAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "PaymentType",
                  "AccountRef",
                  "Line"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Purchase"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Purchase": {
                "additionalProperties": false,
                "properties": {
                  "AccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the account reference to which this purchase is applied based on the PaymentType . A type of Check should have bank account, CreditCard should specify credit card account, etc. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
                  },
                  "Credit": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "EntityRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IncludeInAnnualTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include ItemBasedExpenseLine (Available if Preferences.ProductAndServicesPrefs.ForPurchase is set to true ) and AccountBasedExpenseLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentType": {
                    "description": "Type can be Cash , Check , or CreditCard .",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
                    "type": "string"
                  },
                  "PurchaseEx": {
                    "additionalProperties": true,
                    "description": "For internal use.",
                    "type": "object"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
                    "readOnly": true
                  },
                  "RemitToAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "Purchase"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Purchase": {
                "additionalProperties": false,
                "properties": {
                  "AccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the account reference to which this purchase is applied based on the PaymentType . A type of Check should have bank account, CreditCard should specify credit card account, etc. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
                  },
                  "Credit": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "EntityRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IncludeInAnnualTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include ItemBasedExpenseLine (Available if Preferences.ProductAndServicesPrefs.ForPurchase is set to true ) and AccountBasedExpenseLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentType": {
                    "description": "Type can be Cash , Check , or CreditCard .",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
                    "type": "string"
                  },
                  "PurchaseEx": {
                    "additionalProperties": true,
                    "description": "For internal use.",
                    "type": "object"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
                    "readOnly": true
                  },
                  "RemitToAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Purchase"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "PurchaseOrder": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies which AP account to which the bill is credited. Many/most small businesses have a single AP account, so the account can be implied. When specified, the account must be a Liability account, and further, the sub-type must be of type Payables. We strongly recommend that the AP Account be explicitly specified in all cases as companies that have more then one AP account will encounter unexpected errors when relating transactions to each other."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the purchase order. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: Item line. Note: The ItemRef in the ItemBasedExpenseLine below must reference an Item in QBO that has an expense account linked to it (e.g. in the ExpenseAccountRef field of the Item). Otherwise the request fails in QBO with a 'You must select an account for this transaction.' error.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more Bill objects linked to this purchase order; LinkedTxn.TxnType is set to Bill . To retrieve details of a linked Bill transaction, issue a separate request to read the Bill whose ID is linkedTxn.TxnId .",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "Memo": {
                    "description": "A message for the vendor. This text appears on the Purchase Order object sent to the vendor.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "POEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Used to specify the vendor e-mail address where the purchase req is sent."
                  },
                  "POStatus": {
                    "description": "Purchase order status. Valid values are: Open and Closed .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the purchase order to the vendor. This field maps to the Memo field on the Purchase Order form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the PurchaseOrder was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address to which the vendor shipped or will ship any goods associated with the purchase. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the user-defined ShipMethod associated with the transaction. Store shipping method string in both ShipMethodRef.value and ShipMethodRef.name ."
                  },
                  "ShipTo": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the customer to whose shipping address the order will be shipped to."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "VendorAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address to which the payment should be sent. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The vendor reference for this transaction."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "APAccountRef",
                  "VendorRef",
                  "Line"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "PurchaseOrder"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "PurchaseOrder": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the purchase order. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more Bill objects linked to this purchase order; LinkedTxn.TxnType is set to Bill . To retrieve details of a linked Bill transaction, issue a separate request to read the Bill whose ID is linkedTxn.TxnId .",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "Memo": {
                    "description": "A message for the vendor. This text appears on the Purchase Order object sent to the vendor.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "POEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Used to specify the vendor e-mail address where the purchase req is sent."
                  },
                  "POStatus": {
                    "description": "Purchase order status. Valid values are: Open and Closed .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the purchase order to the vendor. This field maps to the Memo field on the Purchase Order form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the PurchaseOrder was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address to which the vendor shipped or will ship any goods associated with the purchase. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the user-defined ShipMethod associated with the transaction. Store shipping method string in both ShipMethodRef.value and ShipMethodRef.name ."
                  },
                  "ShipTo": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the customer to whose shipping address the order will be shipped to."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "VendorAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address to which the payment should be sent. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "PurchaseOrder"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "PurchaseOrder": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "DueDate": {
                    "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the purchase order. Valid values: NotSet , NeedToSend , EmailSent",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more Bill objects linked to this purchase order; LinkedTxn.TxnType is set to Bill . To retrieve details of a linked Bill transaction, issue a separate request to read the Bill whose ID is linkedTxn.TxnId .",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "Memo": {
                    "description": "A message for the vendor. This text appears on the Purchase Order object sent to the vendor.",
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "POEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Used to specify the vendor e-mail address where the purchase req is sent."
                  },
                  "POStatus": {
                    "description": "Purchase order status. Valid values are: Open and Closed .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the purchase order to the vendor. This field maps to the Memo field on the Purchase Order form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the PurchaseOrder was created from.",
                    "readOnly": true
                  },
                  "SalesTermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address to which the vendor shipped or will ship any goods associated with the purchase. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the user-defined ShipMethod associated with the transaction. Store shipping method string in both ShipMethodRef.value and ShipMethodRef.name ."
                  },
                  "ShipTo": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the customer to whose shipping address the order will be shipped to."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "VendorAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Address to which the payment should be sent. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "PurchaseOrder"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "RecurringTransaction": {
                "additionalProperties": false,
                "maxProperties": 1,
                "minProperties": 1,
                "properties": {
                  "Bill": {
                    "additionalProperties": true,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenselinebill"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenselinebill"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  },
                  "Deposit": {
                    "additionalProperties": true,
                    "properties": {
                      "CashBack": {
                        "$ref": "#/components/schemas/qbo_cashbackinfo"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_linelinkedtxn"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_depositline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  },
                  "Estimate": {
                    "additionalProperties": true,
                    "properties": {
                      "AcceptedBy": {
                        "description": "Name of customer who accepted the estimate.",
                        "type": "string"
                      },
                      "AcceptedDate": {
                        "description": "Date estimate was accepted.",
                        "type": "string"
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "ExpirationDate": {
                        "description": "Date by which estimate must be accepted before invalidation.",
                        "type": "string"
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnStatus": {
                        "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  },
                  "Invoice": {
                    "additionalProperties": true,
                    "properties": {
                      "AllowIPNPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                      },
                      "AllowOnlineACHPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlineAffirmPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlineCreditCardPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlinePayPalPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlinePayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "BillEmailBcc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                      },
                      "BillEmailCc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "Deposit": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The deposit made towards this invoice."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "InvoiceLink": {
                        "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                            "readOnly": true
                          },
                          {
                            "maxProperties": 0,
                            "type": "object"
                          }
                        ]
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TransactionLocationType": {
                        "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  },
                  "JournalEntry": {
                    "additionalProperties": true,
                    "properties": {
                      "Adjustment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates whether this transaction is a journal entry adjustment."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_journalentryline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxRateRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  },
                  "Purchase": {
                    "additionalProperties": true,
                    "properties": {
                      "AccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the account reference to which this purchase is applied based on the PaymentType . A type of Check should have bank account, CreditCard should specify credit card account, etc. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
                      },
                      "Credit": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "EntityRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include ItemBasedExpenseLine (Available if Preferences.ProductAndServicesPrefs.ForPurchase is set to true ) and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentType": {
                        "description": "Type can be Cash , Check , or CreditCard .",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
                        "type": "string"
                      },
                      "PurchaseEx": {
                        "additionalProperties": true,
                        "description": "For internal use.",
                        "type": "object"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "RemitToAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  },
                  "RefundReceipt": {
                    "additionalProperties": true,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "CheckPayment": {
                        "$ref": "#/components/schemas/qbo_checkpayment",
                        "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only)",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                        "type": "string"
                      },
                      "PaymentType": {
                        "description": "Valid values are Cash , Check , CreditCard , or Other .",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  },
                  "SalesReceipt": {
                    "additionalProperties": true,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  },
                  "Transfer": {
                    "additionalProperties": true,
                    "properties": {
                      "Amount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction."
                      },
                      "FromAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "ToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  },
                  "VendorCredit": {
                    "additionalProperties": true,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
                        "readOnly": true
                      },
                      "RecurringInfo": {
                        "$ref": "#/components/schemas/qbo_recurringinfo"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      }
                    },
                    "required": [
                      "RecurringInfo"
                    ],
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "RecurringTransaction"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "RecurringTransaction": {
                "additionalProperties": false,
                "maxProperties": 1,
                "minProperties": 1,
                "properties": {
                  "Bill": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  "Deposit": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  "Estimate": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  "Invoice": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  "JournalEntry": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  "Purchase": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  "RefundReceipt": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  "SalesReceipt": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  "Transfer": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  "VendorCredit": {
                    "additionalProperties": false,
                    "properties": {
                      "Id": {
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "RecurringTransaction"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "RefundReceipt": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "CheckPayment": {
                    "$ref": "#/components/schemas/qbo_checkpayment",
                    "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/qbo_referencetype"
                      },
                      {
                        "$ref": "#/components/schemas/qbo_currencyref"
                      }
                    ],
                    "description": "Accounts receivable asset account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. CurrencyRefType Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here ."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "The minimum line item required for the request is one of the following: SalesItemLine and GroupLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                    "type": "string"
                  },
                  "PaymentType": {
                    "description": "Valid values are Cash , Check , CreditCard , or Other .",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                    "readOnly": true
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "DepositToAccountRef",
                  "Line"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "RefundReceipt"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "RefundReceipt": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "CheckPayment": {
                    "$ref": "#/components/schemas/qbo_checkpayment",
                    "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only)",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                    "type": "string"
                  },
                  "PaymentType": {
                    "description": "Valid values are Cash , Check , CreditCard , or Other .",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                    "readOnly": true
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "RefundReceipt"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "RefundReceipt": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "CheckPayment": {
                    "$ref": "#/components/schemas/qbo_checkpayment",
                    "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/qbo_referencetype"
                      },
                      {
                        "$ref": "#/components/schemas/qbo_currencyref"
                      }
                    ],
                    "description": "Accounts receivable asset account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. CurrencyRefType Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here ."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "The minimum line item required for the request is one of the following: SalesItemLine and GroupLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                    "type": "string"
                  },
                  "PaymentType": {
                    "description": "Valid values are Cash , Check , CreditCard , or Other .",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                    "readOnly": true
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "RefundReceipt"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "RefundReceipt": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                  },
                  "CheckPayment": {
                    "$ref": "#/components/schemas/qbo_checkpayment",
                    "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only)",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                    "type": "string"
                  },
                  "PaymentType": {
                    "description": "Valid values are Cash , Check , CreditCard , or Other .",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                    "readOnly": true
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxExemptionRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                    "readOnly": true
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "RefundReceipt"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "SalesReceipt": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DeliveryInfo": {
                    "$ref": "#/components/schemas/qbo_deliveryinfo",
                    "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                    "readOnly": true
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                    "readOnly": true
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Line": {
                    "description": "The minimum line item required for the request is one of the following: SalesItemLine and GroupLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                    "readOnly": true
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                    "readOnly": true
                  },
                  "TrackingNum": {
                    "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Line"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "SalesReceipt"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "SalesReceipt": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DeliveryInfo": {
                    "$ref": "#/components/schemas/qbo_deliveryinfo",
                    "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                    "readOnly": true
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                    "readOnly": true
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                    "readOnly": true
                  },
                  "TrackingNum": {
                    "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "SalesReceipt"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "SalesReceipt": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DeliveryInfo": {
                    "$ref": "#/components/schemas/qbo_deliveryinfo",
                    "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                    "readOnly": true
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                    "readOnly": true
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                    "readOnly": true
                  },
                  "TrackingNum": {
                    "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "SalesReceipt"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "SalesReceipt": {
                "additionalProperties": false,
                "properties": {
                  "ApplyTaxAfterDiscount": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillEmail": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CreditCardPayment": {
                    "$ref": "#/components/schemas/qbo_creditcardpayment",
                    "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "CustomerMemo": {
                    "$ref": "#/components/schemas/qbo_memoref",
                    "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DeliveryInfo": {
                    "$ref": "#/components/schemas/qbo_deliveryinfo",
                    "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                    "readOnly": true
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DepositToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                    "type": "string"
                  },
                  "EmailStatus": {
                    "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "FreeFormAddress": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "HomeBalance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                    "readOnly": true
                  },
                  "HomeTotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                    "readOnly": true
                  },
                  "Id": {
                    "type": "string"
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_groupline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_descriptiononlyline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_discountline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_subtotalline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PaymentMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                  },
                  "PaymentRefNum": {
                    "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                    "type": "string"
                  },
                  "PrintStatus": {
                    "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                    "type": "string"
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                    "type": "string"
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                    "readOnly": true
                  },
                  "ShipAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipDate": {
                    "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                    "type": "string"
                  },
                  "ShipFromAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "ShipMethodRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                    "readOnly": true
                  },
                  "TrackingNum": {
                    "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                    "type": "string"
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "TxnSource": {
                    "description": "Used internally to specify originating source of a credit card transaction.",
                    "type": "string"
                  },
                  "TxnTaxDetail": {
                    "$ref": "#/components/schemas/qbo_txntaxdetail",
                    "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "SalesReceipt"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "TaxAgency": {
                "additionalProperties": false,
                "properties": {
                  "DisplayName": {
                    "description": "Name of the agency.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "LastFileDate": {
                    "description": "The last tax filing date for this tax agency. This field is automatically populated by QuickBooks business logic at tax filing time.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxAgencyConfig": {
                    "description": "Flag to identify whether the TaxAgency is system defined by Automated Sales Tax engine or user generated. Valid values include USER_DEFINED , SYSTEM_GENERATED SYSTEM_GENERATED.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxRegistrationNumber": {
                    "description": "Registration number for the agency.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxTrackedOnPurchases": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes whether this tax agency is used to track tax on purchases.",
                    "readOnly": true
                  },
                  "TaxTrackedOnSales": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes whether this tax agency is used to track tax on sales.",
                    "readOnly": true
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "DisplayName"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "TaxAgency"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Term": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "DayOfMonthDue": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Payment must be received by this day of the month. Required if DueDays not present"
                  },
                  "DiscountDayOfMonth": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Discount applies if paid before this day of month. Required if DueDays not present",
                    "minimum": 1
                  },
                  "DiscountDays": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Discount applies if paid within this number of days. Used only when DueDays is specified."
                  },
                  "DiscountPercent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Discount percentage available against an amount if paid within the days specified by DiscountDays ."
                  },
                  "DueDays": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Number of days from delivery of goods or services until the payment is due. Required if DayOfMonthDue not present"
                  },
                  "DueNextMonthDays": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Payment due next month if issued that many days before the DayOfMonthDue . Required if DueDays not present.",
                    "minimum": 1
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the term. For example, Net 30 .",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Type": {
                    "description": "Type of the Sales Term. Valid values: STANDARD --Used if DueDays is not null. DATE_DRIVEN --Used if DueDays is null.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Name"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Term"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Term": {
                "additionalProperties": false,
                "properties": {
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this entity is currently enabled for use by QuickBooks."
                  },
                  "DayOfMonthDue": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Payment must be received by this day of the month. Required if DueDays not present"
                  },
                  "DiscountDayOfMonth": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Discount applies if paid before this day of month. Required if DueDays not present",
                    "minimum": 1
                  },
                  "DiscountDays": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Discount applies if paid within this number of days. Used only when DueDays is specified."
                  },
                  "DiscountPercent": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Discount percentage available against an amount if paid within the days specified by DiscountDays ."
                  },
                  "DueDays": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Number of days from delivery of goods or services until the payment is due. Required if DayOfMonthDue not present"
                  },
                  "DueNextMonthDays": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Payment due next month if issued that many days before the DayOfMonthDue . Required if DueDays not present.",
                    "minimum": 1
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Name": {
                    "description": "User recognizable name for the term. For example, Net 30 .",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "Type": {
                    "description": "Type of the Sales Term. Valid values: STANDARD --Used if DueDays is not null. DATE_DRIVEN --Used if DueDays is null.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Term"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "TimeActivity": {
                "additionalProperties": false,
                "properties": {
                  "BillableStatus": {
                    "description": "Billable status of the time recorded. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled . You cannot directly update the status to HasBeenBilled . To set the status to HasBeenBilled , create an Invoice object and attach this TimeActivity object as a linked transaction to that Invoice.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "BreakHours": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                  },
                  "BreakMinutes": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with this object. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CostRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Pay rate of the employee or vendor for this time activity."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of this object. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "Description": {
                    "description": "Description of work completed during time activity.",
                    "type": "string"
                  },
                  "EmployeeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the employee whose time is being recorded. Query the Employee name list resource to determine the appropriate Employee object for this reference. Use Employee.Id and Employee.DisplayName from that object for EmployeerRef.value and EmployeeRef.Name , respectively."
                  },
                  "EndTime": {
                    "description": "Time that work ends. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation. If TnxDate is provided then consider passing the StartTime and EndTime wihtout including the timeZone offset, then the the date passed on the TxnDate is used. If TnxDate is NOT provided, passing the StartTime and EndTime with/wihtout including the timeZone offset, then the the current date on the server is used. For any transactions with historical/future dates kindly include TxnDate in YYYY-MM-DD format and StartTime and EndTime in Hours and Minutes",
                    "type": "string"
                  },
                  "HourlyRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Hourly bill rate of the employee or vendor for this time activity. Required if BillableStatus is set to Billable"
                  },
                  "Hours": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "ItemRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the service item associated with this object. Query the Item name list resource, where Item.Type is set to Service , to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Minutes": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                  },
                  "NameOf": {
                    "description": "Enumeration of time activity types. Required in conjunction with either EmployeeRef or VendorRef attributes for create operations. Valid values: Vendor or Employee .",
                    "type": "string"
                  },
                  "PayrollItemRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies how much the employee should be paid for doing the work specified by the Compensation Id. Query the EmployeeCompensation resource to determine the appropriate PayrollCompensation object for an employee. Use EmployeeCompensation.Id and EmployerCompensation.Name from that object for PayrollItemRef.value and PayrollItemRef.name , respectively. This field is available as part of the Payroll Compensation resource in the Workforce API. Read more about the Payroll Compensation resource , available to Silver, Gold, and Platinum partners."
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "StartTime": {
                    "description": "Time that work starts. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation. If TnxDate is provided then consider passing the StartTime and EndTime wihtout including the timeZone offset, then the the date passed on the TxnDate is used. If TnxDate is NOT provided, passing the StartTime and EndTime with/wihtout including the timeZone offset, then the the current date on the server is used. For any transactions with historical/future dates kindly include TxnDate in YYYY-MM-DD format and StartTime and EndTime in Hours and Minutes",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the time recorded is both billable and taxable."
                  },
                  "TxnDate": {
                    "description": "The date for the time activity. This is the posting date that affects financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default. If you provide the StartTime and EndTime without including the timeZone offset, then you would need to pass the TxnDate for any historical or future dates. Lets say if you want to create a historical time activity then pass the TxnDate as the date and pass StartTime and EndTime as Hours without including the timeZone offset.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the vendor whose time is being recorded. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "NameOf"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "TimeActivity"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "TimeActivity": {
                "additionalProperties": false,
                "properties": {
                  "BillableStatus": {
                    "description": "Billable status of the time recorded. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled . You cannot directly update the status to HasBeenBilled . To set the status to HasBeenBilled , create an Invoice object and attach this TimeActivity object as a linked transaction to that Invoice.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "BreakHours": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                  },
                  "BreakMinutes": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with this object. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CostRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Pay rate of the employee or vendor for this time activity."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively. Required if BillableStatus is set to Billable"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of this object. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "Description": {
                    "description": "Description of work completed during time activity.",
                    "type": "string"
                  },
                  "EmployeeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the employee whose time is being recorded. Query the Employee name list resource to determine the appropriate Employee object for this reference. Use Employee.Id and Employee.DisplayName from that object for EmployeerRef.value and EmployeeRef.Name , respectively. Required if NameOf is set to Employee"
                  },
                  "EndTime": {
                    "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
                    "type": "string"
                  },
                  "HourlyRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Hourly bill rate of the employee or vendor for this time activity. Required if BillableStatus is set to Billable"
                  },
                  "Hours": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "ItemRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the service item associated with this object. Query the Item name list resource, where Item.Type is set to Service , to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Minutes": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                  },
                  "NameOf": {
                    "description": "Enumeration of time activity types. Required in conjunction with either EmployeeRef or VendorRef attributes for create operations. Valid values: Vendor or Employee .",
                    "type": "string"
                  },
                  "PayrollItemRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies how much the employee should be paid for doing the work specified by the Compensation Id. Query the EmployeeCompensation resource to determine the appropriate PayrollCompensation object for an employee. Use EmployeeCompensation.Id and EmployerCompensation.Name from that object for PayrollItemRef.value and PayrollItemRef.name , respectively. This field is available as part of the Payroll Compensation resource in the Workforce API. Read more about the Payroll Compensation resource , available to Silver, Gold, and Platinum partners."
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "StartTime": {
                    "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the time recorded is both billable and taxable."
                  },
                  "TxnDate": {
                    "description": "The date for the time activity. This is the posting date that affects financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default. If you provide the StartTime and EndTime without including the timeZone offset, then you would need to pass the TxnDate for any historical or future dates. Lets say if you want to create a historical time activity then pass the TxnDate as the date and pass StartTime and EndTime as Hours without including the timeZone offset.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the vendor whose time is being recorded. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively. Required if NameOf is set to Vendor"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "TimeActivity"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "TimeActivity": {
                "additionalProperties": false,
                "properties": {
                  "BillableStatus": {
                    "description": "Billable status of the time recorded. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled . You cannot directly update the status to HasBeenBilled . To set the status to HasBeenBilled , create an Invoice object and attach this TimeActivity object as a linked transaction to that Invoice.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "BreakHours": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                  },
                  "BreakMinutes": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                  },
                  "ClassRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Class associated with this object. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                  },
                  "CostRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Pay rate of the employee or vendor for this time activity."
                  },
                  "CustomerRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively. Required if BillableStatus is set to Billable"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of this object. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "Description": {
                    "description": "Description of work completed during time activity.",
                    "type": "string"
                  },
                  "EmployeeRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the employee whose time is being recorded. Query the Employee name list resource to determine the appropriate Employee object for this reference. Use Employee.Id and Employee.DisplayName from that object for EmployeerRef.value and EmployeeRef.Name , respectively. Required if NameOf is set to Employee"
                  },
                  "EndTime": {
                    "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
                    "type": "string"
                  },
                  "HourlyRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Hourly bill rate of the employee or vendor for this time activity. Required if BillableStatus is set to Billable"
                  },
                  "Hours": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "ItemRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the service item associated with this object. Query the Item name list resource, where Item.Type is set to Service , to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Minutes": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "pattern": "^-?[0-9]+$",
                        "type": "string"
                      }
                    ],
                    "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                  },
                  "NameOf": {
                    "description": "Enumeration of time activity types. Required in conjunction with either EmployeeRef or VendorRef attributes for create operations. Valid values: Vendor or Employee .",
                    "type": "string"
                  },
                  "PayrollItemRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies how much the employee should be paid for doing the work specified by the Compensation Id. Query the EmployeeCompensation resource to determine the appropriate PayrollCompensation object for an employee. Use EmployeeCompensation.Id and EmployerCompensation.Name from that object for PayrollItemRef.value and PayrollItemRef.name , respectively. This field is available as part of the Payroll Compensation resource in the Workforce API. Read more about the Payroll Compensation resource , available to Silver, Gold, and Platinum partners."
                  },
                  "ProjectRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the Project ID associated with this transaction."
                  },
                  "StartTime": {
                    "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "Taxable": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if the time recorded is both billable and taxable."
                  },
                  "TxnDate": {
                    "description": "The date for the time activity. This is the posting date that affects financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default. If you provide the StartTime and EndTime without including the timeZone offset, then you would need to pass the TxnDate for any historical or future dates. Lets say if you want to create a historical time activity then pass the TxnDate as the date and pass StartTime and EndTime as Hours without including the timeZone offset.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies the vendor whose time is being recorded. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively. Required if NameOf is set to Vendor"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "TimeActivity"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Transfer": {
                "additionalProperties": false,
                "properties": {
                  "Amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction."
                  },
                  "FromAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "ToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Amount",
                  "ToAccountRef",
                  "FromAccountRef"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Transfer"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Transfer": {
                "additionalProperties": false,
                "properties": {
                  "Amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction."
                  },
                  "FromAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "ToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "Transfer"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Transfer": {
                "additionalProperties": false,
                "properties": {
                  "Amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction."
                  },
                  "FromAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "ToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Transfer"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Transfer": {
                "additionalProperties": false,
                "properties": {
                  "Amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total amount of the transaction."
                  },
                  "FromAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "ToAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "const": true,
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken",
                  "sparse"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Transfer"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Vendor": {
                "additionalProperties": false,
                "properties": {
                  "AcctNum": {
                    "description": "Name or number of the account associated with this vendor.",
                    "type": "string"
                  },
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this object is currently enabled for use by QuickBooks."
                  },
                  "AlternatePhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Alternate phone number."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create, read-only otherwise.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "BillRate can be set to specify this vendor's hourly billing rate."
                  },
                  "CompanyName": {
                    "description": "The name of the company associated with the person or organization.",
                    "type": "string"
                  },
                  "CostRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Pay rate of the vendor"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts associated with this vendor are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this vendor is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency . Read-only after object is created.",
                    "readOnly": true
                  },
                  "DisplayName": {
                    "description": "The name of the vendor as displayed. Must be unique across all Vendor, Customer, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating vendor name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                    "type": "string"
                  },
                  "FamilyName": {
                    "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "Fax": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Fax number."
                  },
                  "GivenName": {
                    "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "HasTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicate if the vendor has TPAR enabled. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "MiddleName": {
                    "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "Mobile": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Mobile phone number."
                  },
                  "OtherContactInfo": {
                    "$ref": "#/components/schemas/qbo_contactinfo",
                    "description": "List of ContactInfo entities of any contact info type."
                  },
                  "PrimaryEmailAddr": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Primary email address."
                  },
                  "PrimaryPhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Primary phone number."
                  },
                  "PrintOnCheckName": {
                    "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update.",
                    "type": "string"
                  },
                  "Source": {
                    "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                    "type": "string"
                  },
                  "Suffix": {
                    "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "T4AEligible": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if vendor is T4A eligible. Valid for CA locale"
                  },
                  "T5018Eligible": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if vendor is T5018 eligible. Valid for CA locale"
                  },
                  "TaxIdentifier": {
                    "description": "The tax ID of the Person or Organization. The value is masked in responses, exposing only last four characters. For example, the ID of 123-45-6789 is returned as XXXXXXX6789 .",
                    "type": "string"
                  },
                  "TermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a default Term associated with this Vendor object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for TermRef.value and TermRef.name , respectively."
                  },
                  "Title": {
                    "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , Suffix , or FullyQualifiedName attributes are required during create.",
                    "type": "string"
                  },
                  "Vendor1099": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "This vendor is an independent contractor; someone who is given a 1099-MISC form at the end of the year. A 1099 vendor is paid with regular checks, and taxes are not withheld on their behalf."
                  },
                  "VendorPaymentBankDetail": {
                    "$ref": "#/components/schemas/qbo_vendorpaymentbankdetail",
                    "description": "Vendor Payment Bank Detail."
                  },
                  "WebAddr": {
                    "$ref": "#/components/schemas/qbo_websiteaddress",
                    "description": "Website address."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "Vendor"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "Vendor": {
                "additionalProperties": false,
                "properties": {
                  "AcctNum": {
                    "description": "Name or number of the account associated with this vendor.",
                    "type": "string"
                  },
                  "Active": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "If true, this object is currently enabled for use by QuickBooks."
                  },
                  "AlternatePhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Alternate phone number."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create, read-only otherwise.",
                    "readOnly": true
                  },
                  "BillAddr": {
                    "$ref": "#/components/schemas/qbo_physicaladdress",
                    "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                  },
                  "BillRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "BillRate can be set to specify this vendor's hourly billing rate."
                  },
                  "CompanyName": {
                    "description": "The name of the company associated with the person or organization.",
                    "type": "string"
                  },
                  "CostRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Pay rate of the vendor"
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts associated with this vendor are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this vendor is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency . Read-only after object is created.",
                    "readOnly": true
                  },
                  "DisplayName": {
                    "description": "The name of the vendor as displayed. Must be unique across all Vendor, Customer, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating vendor name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                    "type": "string"
                  },
                  "FamilyName": {
                    "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "Fax": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Fax number."
                  },
                  "GivenName": {
                    "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "HasTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicate if the vendor has TPAR enabled. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "MiddleName": {
                    "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "Mobile": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Mobile phone number."
                  },
                  "OtherContactInfo": {
                    "$ref": "#/components/schemas/qbo_contactinfo",
                    "description": "List of ContactInfo entities of any contact info type."
                  },
                  "PrimaryEmailAddr": {
                    "$ref": "#/components/schemas/qbo_emailaddress",
                    "description": "Primary email address."
                  },
                  "PrimaryPhone": {
                    "$ref": "#/components/schemas/qbo_telephonenumber30",
                    "description": "Primary phone number."
                  },
                  "PrintOnCheckName": {
                    "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update.",
                    "type": "string"
                  },
                  "Source": {
                    "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                    "type": "string"
                  },
                  "Suffix": {
                    "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "T4AEligible": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if vendor is T4A eligible. Valid for CA locale"
                  },
                  "T5018Eligible": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "True if vendor is T5018 eligible. Valid for CA locale"
                  },
                  "TaxIdentifier": {
                    "description": "The tax ID of the Person or Organization. The value is masked in responses, exposing only last four characters. For example, the ID of 123-45-6789 is returned as XXXXXXX6789 .",
                    "type": "string"
                  },
                  "TermRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to a default Term associated with this Vendor object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for TermRef.value and TermRef.name , respectively."
                  },
                  "Title": {
                    "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes are required during create.",
                    "type": "string"
                  },
                  "Vendor1099": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "This vendor is an independent contractor; someone who is given a 1099-MISC form at the end of the year. A 1099 vendor is paid with regular checks, and taxes are not withheld on their behalf."
                  },
                  "VendorPaymentBankDetail": {
                    "$ref": "#/components/schemas/qbo_vendorpaymentbankdetail",
                    "description": "Vendor Payment Bank Detail."
                  },
                  "WebAddr": {
                    "$ref": "#/components/schemas/qbo_websiteaddress",
                    "description": "Website address."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "Vendor"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "VendorCredit": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "IncludeInAnnualTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The vendor reference for this transaction."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "VendorRef",
                  "Line"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "create"
              }
            },
            "required": [
              "bId",
              "operation",
              "VendorCredit"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "VendorCredit": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IncludeInAnnualTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "delete"
              }
            },
            "required": [
              "bId",
              "operation",
              "VendorCredit"
            ],
            "type": "object"
          },
          {
            "additionalProperties": false,
            "properties": {
              "VendorCredit": {
                "additionalProperties": false,
                "properties": {
                  "APAccountRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                  },
                  "Balance": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "CurrencyRef": {
                    "$ref": "#/components/schemas/qbo_currencyref",
                    "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                  },
                  "DepartmentRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                  },
                  "DocNumber": {
                    "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "ExchangeRate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                  },
                  "GlobalTaxCalculation": {
                    "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                    "type": "string"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "IncludeInAnnualTPAR": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                  },
                  "Line": {
                    "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                        },
                        {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "LinkedTxn": {
                    "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_linkedtxn"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "PrivateNote": {
                    "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
                    "type": "string"
                  },
                  "RecurDataRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
                    "readOnly": true
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TotalAmt": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                    "readOnly": true
                  },
                  "TxnDate": {
                    "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                    "type": "string"
                  },
                  "VendorRef": {
                    "$ref": "#/components/schemas/qbo_referencetype",
                    "description": "The vendor reference for this transaction."
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              },
              "bId": {
                "minLength": 1,
                "type": "string"
              },
              "operation": {
                "const": "update"
              }
            },
            "required": [
              "bId",
              "operation",
              "VendorCredit"
            ],
            "type": "object"
          }
        ]
      },
      "qbo_batchitemresponse": {
        "additionalProperties": true,
        "properties": {
          "QueryResponse": {
            "additionalProperties": true,
            "type": "object"
          },
          "ResourceName": {
            "additionalProperties": true,
            "description": "The payload for the response. If the operation results in an error, a Fault object is returned.",
            "type": "object"
          },
          "bId": {
            "description": "Unique identifier for the batch item. This corresponds to the id supplied in the corresponding batch item request.",
            "type": "string"
          }
        },
        "required": [
          "bId"
        ],
        "type": "object"
      },
      "qbo_batchrequest": {
        "additionalProperties": true,
        "properties": {
          "BatchItemRequest": {
            "description": "A wrapper around all request objects for this batch operation.",
            "items": {
              "$ref": "#/components/schemas/qbo_batchitemrequest"
            },
            "maxItems": 30,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "BatchItemRequest"
        ],
        "type": "object"
      },
      "qbo_batchresponse": {
        "additionalProperties": true,
        "properties": {
          "BatchItemResponse": {
            "description": "A wrapper around all response objects for this batch operation.",
            "items": {
              "$ref": "#/components/schemas/qbo_batchitemresponse"
            },
            "type": "array"
          }
        },
        "required": [
          "BatchItemResponse"
        ],
        "type": "object"
      },
      "qbo_billpaymentcheck": {
        "additionalProperties": true,
        "properties": {
          "BankAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the bank account. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.AccountType set to Bank and Account.AccountSubType set to Checking ."
          },
          "PrintStatus": {
            "description": "NeedToPrint Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          }
        },
        "required": [
          "BankAccountRef"
        ],
        "type": "object"
      },
      "qbo_billpaymentcreditcard": {
        "additionalProperties": true,
        "properties": {
          "CCAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the credit card account. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for CCAccountRef.value and CCAccountRef.name , respectively. The specified account must have Account.AccountType set to Credit Card and Account.AccountSubType set to CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
          }
        },
        "required": [
          "CCAccountRef"
        ],
        "type": "object"
      },
      "qbo_billpaymentrequest": {
        "additionalProperties": true,
        "properties": {
          "CheckPayment": {
            "$ref": "#/components/schemas/qbo_billpaymentcheck",
            "description": "Reference to the vendor for this transaction. Required when PayType is Check ."
          },
          "CreditCardPayment": {
            "$ref": "#/components/schemas/qbo_billpaymentcreditcard",
            "description": "Information about a credit card payment for the transaction. Not applicable to Estimate and SalesOrder. Required when PayType is CreditCard ."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "Line": {
            "description": "Individual line items representing zero or more Bill , VendorCredit , and JournalEntry objects linked to this BillPayment object. Valid Line types include: LinkedTxnLine:",
            "items": {
              "$ref": "#/components/schemas/qbo_linelinkedtxn"
            },
            "type": "array"
          },
          "PayType": {
            "description": "The payment type. Valid values include: Check , CreditCard",
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the associated with this payment. This includes the total of all the payments from the BillPayment Details."
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the vendor for this transaction."
          }
        },
        "required": [
          "VendorRef",
          "TotalAmt",
          "Line",
          "PayType"
        ],
        "type": "object"
      },
      "qbo_billpaymentresponse": {
        "additionalProperties": true,
        "properties": {
          "APAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
          },
          "CheckPayment": {
            "$ref": "#/components/schemas/qbo_billpaymentcheck",
            "description": "Information about a check payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is Check ."
          },
          "CreditCardPayment": {
            "$ref": "#/components/schemas/qbo_billpaymentcreditcard",
            "description": "Information about a credit card payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is CreditCard ."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .Required if multicurrency is enabled for the company"
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "Id": {
            "description": "Unique Identifier for an Intuit entity (object).",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items representing zero or more Bill , VendorCredit , and JournalEntry objects linked to this BillPayment object. Use Line.LinkedTxn.TxnId as the ID in a separate Bill, VendorCredit, or JournalEntry read request to retrieve details of the linked object. LinkedTxnLine:",
            "items": {
              "$ref": "#/components/schemas/qbo_linelinkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PayType": {
            "description": "The payment type. Valid values include: Check , CreditCard",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the form.",
            "type": "string"
          },
          "ProcessBillPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates that the payment should be processed by merchant account service. Valid for QuickBooks companies with credit card processing."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount associated with this payment. This includes the total of all the payments from the payment line details. If TotalAmt is greater than the total on the lines being paid, the overpayment is treated as a credit and exposed as such on the QuickBooks UI. It cannot be negative."
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "required": [
          "VendorRef",
          "Line",
          "TotalAmt",
          "PayType"
        ],
        "type": "object"
      },
      "qbo_billrequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "Line": {
            "description": "The minimum line item required for the request.",
            "items": {
              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
            },
            "type": "array"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "required": [
          "VendorRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_billresponse": {
        "additionalProperties": true,
        "properties": {
          "APAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "IncludeInAnnualTPAR": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_itembasedexpenselinebill"
                },
                {
                  "$ref": "#/components/schemas/qbo_accountbasedexpenselinebill"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "required": [
          "VendorRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_budgetdetail": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Account associated with this BudgetDetail. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType=Expense . Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively.",
            "readOnly": true
          },
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Amount assigned to a BudgetDetail.",
            "readOnly": true
          },
          "BudgetDate": {
            "description": "Date of the individual BudgetDetail.",
            "readOnly": true,
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively.",
            "readOnly": true
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Customer associated with this BudgetDetail. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively.",
            "readOnly": true
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "qbo_budgetrequest": {
        "additionalProperties": true,
        "properties": {
          "BudgetDetail": {
            "description": "Container for the budget items.",
            "items": {
              "$ref": "#/components/schemas/qbo_budgetdetail"
            },
            "type": "array"
          },
          "BudgetEntryType": {
            "description": "Period that this budget detail covers.. Valid values include: Monthly , Quarterly , Annually .",
            "readOnly": true,
            "type": "string"
          },
          "BudgetType": {
            "description": "Budget types. The only value currently supported is ProfitAndLoss .",
            "readOnly": true,
            "type": "string"
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "EndDate": {
            "description": "Budget end date.",
            "type": "string"
          },
          "Name": {
            "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
            "readOnly": true,
            "type": "string"
          },
          "StartDate": {
            "description": "Budget begin date.",
            "type": "string"
          }
        },
        "required": [
          "EndDate",
          "StartDate"
        ],
        "type": "object"
      },
      "qbo_budgetresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
          },
          "BudgetDetail": {
            "description": "Container for the budget items.",
            "items": {
              "$ref": "#/components/schemas/qbo_budgetdetail"
            },
            "type": "array"
          },
          "BudgetEntryType": {
            "description": "Period that this budget detail covers.. Valid values include: Monthly , Quarterly , Annually .",
            "readOnly": true,
            "type": "string"
          },
          "BudgetType": {
            "description": "Budget types. The only value currently supported is ProfitAndLoss .",
            "readOnly": true,
            "type": "string"
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "EndDate": {
            "description": "Budget end date.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
            "readOnly": true,
            "type": "string"
          },
          "StartDate": {
            "description": "Budget begin date.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "EndDate",
          "StartDate"
        ],
        "type": "object"
      },
      "qbo_bundleresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, the object is currently enabled for use by QuickBooks."
          },
          "Description": {
            "description": "Description of the item.",
            "type": "string"
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the object. System generated from Name .",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique Identifier for an Intuit entity (object).",
            "readOnly": true,
            "type": "string"
          },
          "ItemGroupDetail": {
            "$ref": "#/components/schemas/qbo_itemgroupdetail",
            "description": "Details of the bundle contents."
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "Name of the item.",
            "type": "string"
          },
          "PrintGroupedItems": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If set to true, bundle components are displayed when printing or sending transactions."
          },
          "PurchaseCost": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
          },
          "Sku": {
            "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Taxable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, transactions for this item are taxable. Applicable to US companies, only.<"
          },
          "Type": {
            "description": "Set to the literal string, Group .",
            "type": "string"
          },
          "UnitPrice": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_cashbackinfo": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The bank acount into which the cashback amount is transferred. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and \\AccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
          },
          "Amount": {
            "description": "Amount of the cash back transaction.",
            "type": "string"
          },
          "Memo": {
            "description": "Memo associated with this cash back transaction.",
            "type": "string"
          }
        },
        "required": [
          "AccountRef",
          "Amount"
        ],
        "type": "object"
      },
      "qbo_cashflowquery": {
        "additionalProperties": true,
        "properties": {
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "item": {
            "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_cashflowreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_cashflowtoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/qbo_cashflowreportrows",
            "description": "Top level container holding information for Aged Receivables report rows."
          }
        },
        "type": "object"
      },
      "qbo_categoryrequest": {
        "additionalProperties": true,
        "properties": {
          "Name": {
            "description": "Name of the category.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The immediate parent of the sub item in the hierarchical Category:Sub-category list. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "SubItem": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "true --The object is a sub-category. false --The object is a top-level category (default). Sub-categories can be nested to a maximum depth of three levels below a top-level category. Required for sub-category."
          },
          "Type": {
            "description": "Must be set to the literal string, Category .",
            "type": "string"
          }
        },
        "required": [
          "Type",
          "Name"
        ],
        "type": "object"
      },
      "qbo_categoryresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "For categories, this is always set to true ."
          },
          "FullyQualifiedName": {
            "description": "Colon-separated list of the top-level category, followed by each sub-category in the hierarchy. Takes the form of Category:SubCategory1:SubCategory2:... . Limited to 5 levels: 4 category levels with an inventory, non-inventory, or service item as the 5th.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Specifies the level of the hierarchy in which the object is located. First sub-category level below the top-most category is 1. Returned in the response body only when SubItem is set to true . Sub-categories can be nested to a maximum depth of three levels below a top-level category.",
            "readOnly": true
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "Name of the category.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the parent of this sub-category. Returned in the response body only when SubItem is set to true . Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "SubItem": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Denotes this object is a sub-category. Returned in the response body if this object is a sub-category. true --This is a sub-category. false --This is a top-level category (default)."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Set to the literal string, Category . When querying Item objects with minor versions earlier than 4 specified, Category types are returned as type Service .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_categoryupdaterequest": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "For categories, this is always set to true ."
          },
          "FullyQualifiedName": {
            "description": "Colon-separated list of the top-level category, followed by each sub-category in the hierarchy. Takes the form of Category:SubCategory1:SubCategory2:... . Limited to 5 levels: 4 category levels with an inventory, non-inventory, or service item as the 5th.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Specifies the level of the hierarchy in which the object is located. First sub-category level below the top-most category is 1. Returned in the response body only when SubItem is set to true . Sub-categories can be nested to a maximum depth of three levels below a top-level category.",
            "readOnly": true
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "Name of the category.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The immediate parent of the sub item in the hierarchical Category:Sub-category list. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "SubItem": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "true --The object is a sub-category. false --The object is a top-level category (default). Sub-categories can be nested to a maximum depth of three levels below a top-level category. Required if this is a sub-category object."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Must be set to the literal string, Category .",
            "type": "string"
          }
        },
        "required": [
          "Name",
          "Type"
        ],
        "type": "object"
      },
      "qbo_changedatacaptureresponse": {
        "additionalProperties": true,
        "properties": {
          "CDCResponse": {
            "additionalProperties": true,
            "description": "The payload for the response. array of object types The payload for the query response. Each element in the array of object types corresponds to a resource specified with the entities query parameter in the request. array of response objects An array of qualifying objects for the change data capture operation. For deleted objects, \"status\":\"Deleted\" is returned in the payload for the object. String The starting count of the response for pagination. String Number of objects in this group. String The total count of qualifying objects returned in this response.",
            "type": "object"
          },
          "NameOfResource": {
            "description": "An array of qualifying objects for the change data capture operation. For deleted objects, \"status\":\"Deleted\" is returned in the payload for the object.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array"
          },
          "QueryResponse": {
            "description": "The payload for the query response. Each element in the array of object types corresponds to a resource specified with the entities query parameter in the request. array of response objects An array of qualifying objects for the change data capture operation. For deleted objects, \"status\":\"Deleted\" is returned in the payload for the object. String The starting count of the response for pagination. String Number of objects in this group. String The total count of qualifying objects returned in this response.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array"
          },
          "maxResults": {
            "description": "Number of objects in this group.",
            "type": "string"
          },
          "startPosition": {
            "description": "The starting count of the response for pagination.",
            "type": "string"
          },
          "totalCount": {
            "description": "The total count of qualifying objects returned in this response.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_changeorderrequest": {
        "additionalProperties": true,
        "properties": {
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Email address where the change order is sent. Required when EmailStatus is set to NeedToSend ."
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; visible on the Change Order document sent to the customer."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the change order (for example, CO-001 ). If not provided, the value is null.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the change order. Valid values: NotSet , NeedToSend , EmailSent .",
            "type": "string"
          },
          "ExpirationDate": {
            "description": "Date by which the change order must be accepted before it expires.",
            "type": "string"
          },
          "Line": {
            "description": "Individual line items describing the work being added or removed. Each line must include a LinkedTxn array referencing the parent project estimate with TxnType: \"Estimate\" . All lines must reference the same parent estimate. Supports SalesItemLineDetail line type.",
            "items": {
              "$ref": "#/components/schemas/qbo_salesitemline"
            },
            "type": "array"
          },
          "PrintStatus": {
            "description": "Printing status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "Organization-private note about the change order. This note does not appear on documents sent to the customer.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the project this change order belongs to. The project must be active. Without a valid ProjectRef , the change order will not appear in the Projects dashboard."
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. If not supplied, the current date on the server is used.",
            "type": "string"
          },
          "TxnStatus": {
            "description": "Current status of the change order. Valid values: Pending , Accepted , Closed , Rejected .",
            "type": "string"
          }
        },
        "required": [
          "ProjectRef",
          "Line",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_changeorderresponse": {
        "additionalProperties": true,
        "properties": {
          "AcceptedBy": {
            "description": "Name of the customer or representative who accepted the change order. Populated when TxnStatus is set to Accepted .",
            "type": "string"
          },
          "AcceptedDate": {
            "description": "Date the change order was accepted. Populated when TxnStatus is set to Accepted .",
            "type": "string"
          },
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If false or null, sales tax is calculated first and then any discount is applied. If true , the discount is subtracted first and then sales tax is calculated."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Email address where the change order is sent. Required when EmailStatus is set to NeedToSend ."
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; visible on the Change Order document sent to the customer."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Use Customer.Id and Customer.DisplayName from the Customer object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the change order (for example, CO-001 ). If not provided, the value is null.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the change order. Valid values: NotSet , NeedToSend , EmailSent .",
            "type": "string"
          },
          "ExpirationDate": {
            "description": "Date by which the change order must be accepted before it expires.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items describing the work being added or removed. Supports SalesItemLineDetail and SubTotalLineDetail line types. Every line must include a LinkedTxn array referencing the parent project estimate with TxnType: \"Estimate\" . All lines must reference the same parent estimate. The Line array uses full-replace behavior on update — lines omitted from an update request are deleted.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "One or more linked transaction references at the header level, reflecting the parent project estimate. Also appears on each line item. Use LinkedTxn.TxnId as the ID in a separate Estimate read request to retrieve details of the linked object. TxnType must always be Estimate .",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "Organization-private note about the change order. This note does not appear on documents sent to the customer.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the project this change order belongs to. Must reference an active project. Without a valid ProjectRef , the change order will not appear in the Projects dashboard."
          },
          "SyncToken": {
            "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 fail. Only the latest version of the object is maintained by QuickBooks Online.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction including all line charges and taxes. Calculated by QuickBooks business logic from the sum of all line Amount values plus applicable tax. Do not include in create or update request bodies; any value supplied is overwritten.",
            "readOnly": true
          },
          "TotalCostAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total cost amount of the transaction, calculated from the sum of all line CostAmount values. Calculated by QuickBooks business logic; any value supplied is overwritten.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnStatus": {
            "description": "Current status of the change order. Valid values: Pending (default — created but not yet reviewed), Accepted (customer approved; project contracted total increases accordingly), Closed (converted to an Invoice or manually closed), Rejected (customer declined; does not affect project total).",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "Tax details for the transaction. Captures sales taxes calculated based on tax codes referenced by the transaction lines."
          }
        },
        "required": [
          "LinkedTxn",
          "Line",
          "ProjectRef",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_checkpayment": {
        "additionalProperties": true,
        "properties": {
          "AcctNum": {
            "description": "Checking account number, as printed on the check.",
            "type": "string"
          },
          "BankName": {
            "description": "The name of the bank on which the check was drawn.",
            "type": "string"
          },
          "CheckNum": {
            "description": "The check number printed on the check.",
            "type": "string"
          },
          "NameOnAcct": {
            "description": "Name of persons or entities holding the account, as printed on the check.",
            "type": "string"
          },
          "Status": {
            "description": "Status of the check. Values provided by service/business logic.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_classrequest": {
        "additionalProperties": true,
        "properties": {
          "Name": {
            "description": "User recognizable name for the Class.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "For class objects that are sub-classes: the immediate parent of this object. Required if this object is a subclass."
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_classresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub class separated by colons. Takes the form of Parent:Class1:SubClass1:SubClass2 . Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the Class.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The immediate parent of the SubClass. Required if this object is a subclass."
          },
          "SubClass": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies whether this object is a subclass. true --this object represents a subclass. false or null--this object represents a top-level class."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_classsalesquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "item": {
            "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_companycurrencyrequest": {
        "additionalProperties": true,
        "properties": {
          "Code": {
            "description": "A three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on.",
            "type": "string"
          }
        },
        "required": [
          "Code"
        ],
        "type": "object"
      },
      "qbo_companycurrencyresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates whether this currency is active in the company or not. true --This currency is active and enabled for use by QuickBooks. false --This currency is inactive, is hidden from most display purposes, and is not availble for use with financial transactions."
          },
          "Code": {
            "description": "A three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. Click here for a list of supported currency codes.",
            "type": "string"
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "The full name of the currency.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "Code"
        ],
        "type": "object"
      },
      "qbo_companyinforesponse": {
        "additionalProperties": true,
        "properties": {
          "CompanyAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Company Address as described in preference. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "CompanyName": {
            "description": "The name of the company.",
            "type": "string"
          },
          "CompanyStartDate": {
            "description": "DateTime when company file was created. This field and Metadata.CreateTime contain the same value.",
            "readOnly": true,
            "type": "string"
          },
          "Country": {
            "description": "Country name to which the company belongs for financial calculations.",
            "type": "string"
          },
          "CustomerCommunicationAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Address of the company as given to their customer, sometimes the address given to the customer mail address is different from Company address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "Email": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Default email address."
          },
          "EmployerId": {
            "description": "If your QuickBooks company has defined an EIN in company settings, this value is returned.",
            "type": "string"
          },
          "FiscalYearStartMonth": {
            "description": "The start month of fiscal year.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "LegalAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Legal Address given to the government for any government communication. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "LegalName": {
            "description": "The legal name of the company.",
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "NameValue": {
            "description": "Any other preference not covered with the standard set of attributes. See Data Services Extensions, below, for special reserved name/value pairs. NameValue.Name--Name of the element. NameValue.Value--Value of the element.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "type": "array"
          },
          "PrimaryPhone": {
            "$ref": "#/components/schemas/qbo_telephonenumber",
            "description": "Primary phone number."
          },
          "SupportedLanguages": {
            "description": "Comma separated list of languages.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "WebAddr": {
            "$ref": "#/components/schemas/qbo_websiteaddress",
            "description": "Website address."
          }
        },
        "type": "object"
      },
      "qbo_contactinfo": {
        "additionalProperties": true,
        "properties": {
          "Telephone": {
            "type": "string"
          },
          "Type": {
            "description": "The type of contact information. Valid values: TelephoneNumber",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_creditcardpayment": {
        "additionalProperties": true,
        "properties": {
          "CreditChargeInfo": {
            "$ref": "#/components/schemas/qbo_creditchargeinfo",
            "description": "Holds creditcard information to request a credit card payment from a merchant account service."
          },
          "CreditChargeResponse": {
            "$ref": "#/components/schemas/qbo_creditchargeresponse",
            "description": "Holds credit-card transaction response information from a merchant account service."
          }
        },
        "type": "object"
      },
      "qbo_creditcardpaymentrequest": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the payment. Denominated in the currency of the credit card account."
          },
          "BankAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Bank account used to pay the Credit Card balance. Must be a Bank account."
          },
          "CreditCardAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Credit Card account for which a payment is being entered. Must be a Credit Card account."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
            "type": "string"
          },
          "TxnDate": {
            "description": "Date of transaction.",
            "type": "string"
          }
        },
        "required": [
          "TxnDate",
          "Amount",
          "BankAccountRef",
          "CreditCardAccountRef"
        ],
        "type": "object"
      },
      "qbo_creditcardpaymentresponse": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction."
          },
          "BankAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Identifies the bank account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference."
          },
          "CheckNum": {
            "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
            "type": "string"
          },
          "CreditCardAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Identifies the credit card account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Memo": {
            "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "required": [
          "CreditCardAccountRef",
          "Amount",
          "BankAccountRef"
        ],
        "type": "object"
      },
      "qbo_creditchargeinfo": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount processed using the credit card."
          },
          "BillAddrStreet": {
            "description": "Credit card holder billing address of record: the street address to which credit card statements are sent.",
            "type": "string"
          },
          "CcExpiryMonth": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Expiration Month on card, expressed as a number: 1 =January, 2 =February, etc."
          },
          "CcExpiryYear": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Expiration Year on card, expressed as a 4 digit number 1999 , 2003 , etc."
          },
          "NameOnAcct": {
            "description": "Account holder name, as printed on the card.",
            "type": "string"
          },
          "PostalCode": {
            "description": "Credit card holder billing postal code. Five digits in the USA.",
            "type": "string"
          },
          "ProcessPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "- false or no value-Store credit card information only. Do not store QuickBooks Payment transaction information in CreditChargeResponse. - true -Store credit card payment transaction information in CreditChargeResponse below. Use this setting when QuickBooks Payments is configured to process credit card charges."
          },
          "Type": {
            "description": "Type of credit card. For example, MasterCard, Visa, Discover, American Express, and so on.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_creditchargeresponse": {
        "additionalProperties": true,
        "properties": {
          "AuthCode": {
            "description": "Code returned from the credit card processor to indicate that the charge will be paid by the card issuer.",
            "type": "string"
          },
          "CCTransId": {
            "description": "Unique identifier of the payment transaction. It can be used to track the status of transactions, or to search transactions.",
            "type": "string"
          },
          "Status": {
            "description": "Indicates the status of the payment transaction. Possible values include Completed , Unknown .",
            "type": "string"
          },
          "TxnAuthorizationTime": {
            "description": "Timestamp indicating the time in which the card processor authorized the transaction.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_creditmemo": {
        "additionalProperties": true,
        "properties": {
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the e-mail address where the credit-memo is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "CurrencyRef": {
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. If not set to the Customer or the Vendor currency, will default to the the home currency of the company as defined by Preferences.CurrencyPrefs.HomeCurrency .",
            "type": "string"
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a Customer or job."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Location of the transaction, as defined using location tracking in QuickBooks Online."
          },
          "Deposit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The deposit made towards this invoice."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Asset account where the payment money is deposited. If you do not specify this account, payment is applied to the Undeposited Funds account.",
            "readOnly": true
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false and a value is supplied, that value is stored even if it is a duplicate. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. Sort order is ASC by default.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique Identifier for an Intuit entity (object).",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine",
            "items": {
              "$ref": "#/components/schemas/qbo_salesitemline"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "NotSet Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete . Printing status of the invoice.",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Term associated with the transaction."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipDate": {
            "description": "Date for delivery of goods or services.",
            "type": "string"
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. [[Ext:ReferSection SectionID=\"id-referencetype\"]]"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks."
          },
          "TrackingNum": {
            "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_creditmemorequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "Line": {
            "description": "The minimum line item required for the request is one of the following. Sales item line type Group item line type",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                }
              ]
            },
            "type": "array"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          }
        },
        "required": [
          "Line",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_creditmemoresponse": {
        "additionalProperties": true,
        "properties": {
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. US versions of QuickBooks only."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Bill-to address of the credit memo. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the e-mail address where the credit-memo is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the credit-memo. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively.",
            "readOnly": true
          },
          "PrintStatus": {
            "description": "Printing status of the credit-memo. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the deposit form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the CreditMemo was created from.",
            "readOnly": true
          },
          "RemainingCredit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total credit amount still available to apply towards the payment.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks."
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "Line",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_currencyprefs": {
        "additionalProperties": true,
        "properties": {
          "HomeCurrency": {
            "$ref": "#/components/schemas/qbo_referencetype"
          },
          "MultiCurrencyEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Multicurrency enabled for this company. Not available with QuickBooks Simple Start.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "qbo_currencyref": {
        "additionalProperties": true,
        "properties": {
          "name": {
            "description": "The full name of the currency.",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            ]
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "qbo_customerbalancedetailquery": {
        "additionalProperties": true,
        "properties": {
          "aging_method": {
            "description": "The date upon which aging is determined. Supported Values: Report_Date , Current",
            "type": "string"
          },
          "arpaid": {
            "description": "Supported Values: All , Paid , Unpaid",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: bill_addr, create_by, create_date, cust_bill_email, cust_comp_name, cust_msg, cust_phone_other, cust_tel, cust_name, deliv_addr, doc_num*, due_date*, last_mod_by, last_mod_date, memo*, sale_sent_state, ship_addr, ship_date, ship_via, term_name, tracking_num, tx_date*, txn_type* Additional columns with custom fields enabled: sales_cust1, sales_cust2, sales_cust3 Additional columns with location tracking enabled: dept_name*",
            "type": "string"
          },
          "custom1": {
            "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "shipvia": {
            "description": "Filter by the shipping method as stored in Invoice.ShipMethodRef.Name . Supported Values: Any shipping method as sent in the Invoice.ShipMethodRef.Name attribute at Invoice create- or update-time.",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "term": {
            "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_customerbalancequery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "arpaid": {
            "description": "Supported Values: All , Paid , Unpaid",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_customerincomequery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          },
          "term": {
            "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_customerrequest": {
        "additionalProperties": true,
        "properties": {
          "DisplayName": {
            "description": "The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
            "type": "string"
          },
          "FamilyName": {
            "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "GivenName": {
            "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "MiddleName": {
            "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "Suffix": {
            "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "Title": {
            "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , Suffix , or FullyQualifiedName attributes are required during create.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_customerresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks. If there is an amount in Customer.Balance when setting this Customer object to inactive through the QuickBooks UI, a CreditMemo balancing transaction is created for the amount."
          },
          "AlternatePhone": {
            "$ref": "#/components/schemas/qbo_telephonenumber30",
            "description": "Alternate phone number."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create."
          },
          "BalanceWithJobs": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Cumulative open balance amount for the Customer (or Job) and all its sub-jobs. Cannot be written to QuickBooks."
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillWithParent": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this Customer object is billed with its parent. If false, or null the customer is not to be billed with its parent. This attribute is valid only if this entity is a Job or sub Customer."
          },
          "CompanyName": {
            "description": "The name of the company associated with the person or organization.",
            "type": "string"
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the currency in which all amounts associated with this customer are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this customer is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency .",
            "readOnly": true
          },
          "CustomerTypeRef": {
            "$ref": "#/components/schemas/qbo_customertyperef",
            "description": "Reference to the customer type assigned to a customer. This field is only returned if the customer is assigned a customer type."
          },
          "DefaultTaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a default tax code associated with this Customer object. Reference is valid if Customer.Taxable is set to true; otherwise, it is ignored. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the default tax code is set by the system and can not be overridden. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for DefaultTaxCodeRef.value and DefaultTaxCodeRef.name , respectively."
          },
          "DisplayName": {
            "description": "The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
            "type": "string"
          },
          "FamilyName": {
            "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "Fax": {
            "$ref": "#/components/schemas/qbo_telephonenumber30",
            "description": "Fax number."
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the object. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Customer:Job:Sub-job . System generated. Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "GivenName": {
            "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "IsProject": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, indicates this is a Project.",
            "readOnly": true
          },
          "Job": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this is a Job or sub-customer. If false or null, this is a top level customer, not a Job or sub-customer."
          },
          "Level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be level with respect to the parent. Constraints: up to 5 levels",
            "readOnly": true
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "MiddleName": {
            "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "Mobile": {
            "$ref": "#/components/schemas/qbo_telephonenumber30",
            "description": "Mobile phone number."
          },
          "Notes": {
            "description": "Free form text describing the Customer.",
            "type": "string"
          },
          "OpenBalanceDate": {
            "description": "Date of the Open Balance for the create operation. Write-on-create.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Customer object that is the immediate parent of the Sub-Customer/Job in the hierarchical Customer:Job list. Required for the create operation if this object is a sub-customer or Job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this Customer object. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PreferredDeliveryMethod": {
            "description": "Preferred delivery method. Values are Print, Email, or None.",
            "type": "string"
          },
          "PrimaryEmailAddr": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Primary email address."
          },
          "PrimaryPhone": {
            "$ref": "#/components/schemas/qbo_telephonenumber30",
            "description": "Primary phone number."
          },
          "PrimaryTaxIdentifier": {
            "description": "Also called Tax Reg. No in ( UK ) , ( CA ) , ( IN ) , ( AU ) represents the tax ID of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
            "type": "string"
          },
          "PrintOnCheckName": {
            "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName. Constraints: Cannot be removed with sparse update.",
            "type": "string"
          },
          "ResaleNum": {
            "description": "Resale number or some additional info about the customer.",
            "type": "string"
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a SalesTerm associated with this Customer object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "SecondaryTaxIdentifier": {
            "description": "Also called UTR No. in ( UK ) , CST Reg No. ( IN ) also represents the tax registration number of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
            "type": "string"
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Default shipping address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "Source": {
            "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
            "type": "string"
          },
          "Suffix": {
            "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionReasonId": {
            "description": "The tax exemption reason associated with this customer object. Applicable if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) for the company. Set TaxExemptionReasonId: to one of the following: Id Reason 1 Federal government 2 State government 3 Local government 4 Tribal government 5 Charitable organization 6 Religious organization 7 Educational organization 8 Hospital 9 Resale 10 Direct pay permit 11 Multiple points of use 12 Direct mail 13 Agricultural production 14 Industrial production / manufacturing 15 Foreign diplomat",
            "type": "string"
          },
          "Taxable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, transactions for this customer are taxable. Default behavior: true, if DefaultTaxCodeRef is defined or false if TaxExemptionReasonId is set."
          },
          "Title": {
            "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
            "type": "string"
          },
          "WebAddr": {
            "$ref": "#/components/schemas/qbo_websiteaddress",
            "description": "Website address."
          }
        },
        "type": "object"
      },
      "qbo_customersalesquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "item": {
            "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_customertyperef": {
        "additionalProperties": true,
        "properties": {
          "value": {
            "description": "The unique numeric Id of the customer type. This maps to the CustomerType entity: CustomerType.Id .",
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "qbo_customertyperesponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates whether this customer type is active in the company or not. true --This customer type is active and enabled for use by QuickBooks. false —This customer type is inactive, is hidden from most display purposes, and is not availble for use with financial transactions."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "The full name of the customer type.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_customextensions": {
        "additionalProperties": true,
        "properties": {
          "AssociatedValues": {
            "$ref": "#/components/schemas/qbo_associatedvalues",
            "description": "Array of key/value pairs associated with this extension. For ExtensionType=DIMENSION , each pair maps a dimension definition ( Key ) to a dimension value ( Value )."
          },
          "ExtensionType": {
            "description": "The type of extension applied to the line. Currently supported value: DIMENSION .",
            "type": "string"
          }
        },
        "required": [
          "AssociatedValues",
          "ExtensionType"
        ],
        "type": "object"
      },
      "qbo_customfield": {
        "additionalProperties": true,
        "properties": {
          "DefinitionId": {
            "description": "Unique identifier of the CustomFieldDefinition that corresponds to this CustomField.",
            "readOnly": true,
            "type": "string"
          },
          "Name": {
            "description": "Name of the custom field.",
            "readOnly": true,
            "type": "string"
          },
          "StringValue": {
            "description": "The value for the StringType custom field.",
            "type": "string"
          },
          "Type": {
            "description": "Data type of custom field. Only one type is currently supported: StringType .",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "DefinitionId"
        ],
        "type": "object"
      },
      "qbo_customfieldboolpo": {
        "additionalProperties": true,
        "properties": {
          "BooleanValue": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Used to enable the custom field. Set to True to enable the field. Once enabled, it is available on purchase order forms in the QuickBOoks UI and available for QuickBooks services."
          },
          "Name": {
            "description": "The internal name of the custom field. Name takes the form PurchasePrefs.UsePurchaseNameN , where N is 1 , 2 , or 3 for up to three available custom fields.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Value is BooleanType . Denotes this is a custom field enabling object.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_customfieldboolsales": {
        "additionalProperties": true,
        "properties": {
          "BooleanValue": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Used to enable the custom field. Set to True to enable the field. Once enabled, it is available on sales forms in the QuickBOoks UI and available for QuickBooks services."
          },
          "Name": {
            "description": "The internal name of an enabled custom field. Name takes the form SalesFormsPrefs.SalesCustomNameN , where N is 1 , 2 , or 3 for up to three available custom fields.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Value is BooleanType . Denotes this is a custom field enabling object.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_customfieldstringpo": {
        "additionalProperties": true,
        "properties": {
          "Name": {
            "description": "The internal name of an enabled custom field, Name takes the form PurchasePrefs.PurchaseCustomNameN , where N is 1 , 2 , or 3 for up to three available custom fields that have been enabled.",
            "readOnly": true,
            "type": "string"
          },
          "StringValue": {
            "description": "The name of the custom field as it appears on the Purchase Order form.",
            "type": "string"
          },
          "Type": {
            "description": "Denotes that this is a custom field definition. Value is StringType . This type of custom field is available once the field has been enabled with a corresponding CustomField object of type BooleanType .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_customfieldstringsales": {
        "additionalProperties": true,
        "properties": {
          "Name": {
            "description": "The internal name of an enabled custom field, Name takes the form SalesFormsPrefs.SalesCustomNameN , where N is 1 , 2 , or 3 for up to three available custom fields that have been enabled. Use the numeric part, represented by N here, as the CustomField.DefinitionId when configuring custom fields in transactions.",
            "readOnly": true,
            "type": "string"
          },
          "StringValue": {
            "description": "The name of the custom field as it appears on the sales form.",
            "type": "string"
          },
          "Type": {
            "description": "Denotes that this is a custom field definition. Value is StringType . This type of custom field is available once the field has been enabled with a corresponding CustomField object of type BooleanType .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_dataservicesextensions": {
        "additionalProperties": true,
        "properties": {},
        "type": "object"
      },
      "qbo_date": {
        "additionalProperties": true,
        "properties": {
          "date": {
            "description": "Local timezone: YYYY-MM-DD UTC: YYYY-MM-DD Z Specific time zone: YYYY-MM-DD+/-HH:MM The date format follows the XML Schema standard.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_datetime": {
        "additionalProperties": true,
        "properties": {
          "dateTime": {
            "description": "Local time zone: YYYY-MM-DDTHH:MM:SS UTC: YYYY-MM-DD T HH :MM: SS Z Specific time zone: YYYY-MM-DD T HH :MM:SS +/- HH :MM",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_deleterequest": {
        "additionalProperties": true,
        "properties": {
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "SyncToken",
          "id"
        ],
        "type": "object"
      },
      "qbo_deliveryinfo": {
        "additionalProperties": true,
        "properties": {
          "DeliveryTime": {
            "description": "Delivery date and time.",
            "readOnly": true,
            "type": "string"
          },
          "DeliveryType": {
            "description": "Type of the delivery. Used to confirm that email has been sent via the send operation. Valid values currently include: Email .",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_departmentrequest": {
        "additionalProperties": true,
        "properties": {
          "Name": {
            "description": "User recognizable name for the department.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The immediate parent of the SubDepartment. Required for the create operation if this object is a SubDepartment. Required if this object is a subdepartment"
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_departmentresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks. If set to false, this entity is not available."
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Parent:Department1:SubDepartment1:SubDepartment2 . Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the Department.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The immediate parent of the SubDepartment. Required for the create operation if this object is a SubDepartment. Required if this object is a subdepartment."
          },
          "SubDepartment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies whether this Department object is a SubDepartment. true --SubDepartment. false or null--top-level Department.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_departmentsalesquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "item": {
            "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_depositline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "DepositLineDetail": {
            "$ref": "#/components/schemas/qbo_depositlinedetail"
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to DepositLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          }
        },
        "required": [
          "DetailType",
          "Amount",
          "DepositLineDetail"
        ],
        "type": "object"
      },
      "qbo_depositlinedetail": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Account where the funds are deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType equals one of the following: Income , Other Income , Expense , Other Expense , Other Current Assets , Equity or COGS . Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively. For France locales: The account associated with the referenced Account object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then this account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "CheckNum": {
            "description": "Check number for the desposit.",
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "Entity": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer from which deposit was received. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for Entity.value and Entity.name , respectively."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "TaxApplicableOn": {
            "description": "Indicates whether the tax applicable on the line is sales or purchase. For Non US Companies. Valid value: Sales , Purchase Required if TaxCodeRef is specified.",
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Sales/Purchase tax code associated with the Line. For Non US Companies. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TxnType": {
            "description": "Type of the payment transaction. For information purposes only.",
            "type": "string"
          }
        },
        "required": [
          "AccountRef"
        ],
        "type": "object"
      },
      "qbo_depositrequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: DepositLine",
            "items": {
              "$ref": "#/components/schemas/qbo_depositline"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_depositresponse": {
        "additionalProperties": true,
        "properties": {
          "CashBack": {
            "$ref": "#/components/schemas/qbo_cashbackinfo"
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_linelinkedtxn"
                },
                {
                  "$ref": "#/components/schemas/qbo_depositline"
                }
              ]
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "DepositToAccountRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_descriptiononly": {
        "additionalProperties": true,
        "properties": {
          "ServiceDate": {
            "description": "Date when the service is performed.",
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          }
        },
        "type": "object"
      },
      "qbo_descriptiononlyline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item. Available when Amount is set via the QuickBooks UI. Returned only for Description Only line items that have a non-empty amount associated with them.",
            "readOnly": true
          },
          "Description": {
            "description": "A string representing one of the following: Free form text description of the line item that appears in the printed record. A subtotal line inline with other lines on the sales form and holds the sum of amounts on all lines above it. This is distinct from the overall transaction subtotal represented with a SubTotal detail line. In create requests, set to Subtotal: (case sensitive) to create the subtotal line; the amount is generated by QuickBooks Online business logic. In read requests, lines with Subtotal: nn.nn returned in this field denote subtotal lines in the object.",
            "type": "string"
          },
          "DescriptionLineDetail": {
            "$ref": "#/components/schemas/qbo_descriptiononly"
          },
          "DetailType": {
            "description": "Set to DescriptionOnly for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the transaction, the request is considered an update operation for the description line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the transaction then the request is considered a create operation for the description line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          }
        },
        "required": [
          "DetailType",
          "DescriptionLineDetail"
        ],
        "type": "object"
      },
      "qbo_discountline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to DiscountLineDetail for this type of line.",
            "type": "string"
          },
          "DiscountLineDetail": {
            "$ref": "#/components/schemas/qbo_discountlinedetail",
            "description": "Discount detail type for the entire transaction. This is in contrast to a discount applied to a specific line. The company preference Sales Form Entry | Discounts must be enabled for this type of line to be available. Must be enabled for this type of line to be available."
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation. Not supported for BillPayment, Estimate, Invoice, or Payment objects.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          }
        },
        "required": [
          "DiscountLineDetail",
          "DetailType",
          "Amount"
        ],
        "type": "object"
      },
      "qbo_discountlinedetail": {
        "additionalProperties": true,
        "properties": {
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with this discount. Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "DiscountAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Income account used to track discounts. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType=Income and Account.AccountSubType=DiscountsRefundsGiven . Use Account.Id and Account.Name from that object for DiscountAccountRef.value and DiscountAccountRef.name , respectively."
          },
          "DiscountPercent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Percentage by which the amount due is reduced, from 0% to 100%. To enter a discount of 8.5% use 8.5, not 0.085."
          },
          "PercentBased": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "True if the discount is a percentage; null or false if discount based on amount."
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The TaxCode associated with the sales tax for the expense. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          }
        },
        "type": "object"
      },
      "qbo_discountoverride": {
        "additionalProperties": true,
        "properties": {
          "DiscountAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Income account used to track discounts received from vendors on purchases."
          },
          "DiscountPercent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Percentage by which the amount due is reduced, from 0% to 100%. To enter a discount of 8.5% use 8.5, not 0.085."
          },
          "DiscountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Discount item used in calculating and applying the discount on the sales transaction paid."
          },
          "PercentBased": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "True if the discount is a percentage; null or false if discount based on amount."
          }
        },
        "type": "object"
      },
      "qbo_effectivetaxratedata": {
        "additionalProperties": true,
        "properties": {
          "EffectiveDate": {
            "description": "Effective starting date for which this taxrate is applicable: YYYY-MM-DDTHH:MM:SS UTC: YYYY-MM-DD T HH :MM: SS Z Specific time zone: YYYY-MM-DD T HH :MM:SS +/- HH :MM",
            "type": "string"
          },
          "EndDate": {
            "description": "End date of this taxrate applicability: YYYY-MM-DDTHH:MM:SS UTC: YYYY-MM-DD T HH :MM: SS Z Specific time zone: YYYY-MM-DD T HH :MM:SS +/- HH :MM",
            "type": "string"
          },
          "RateValue": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Represents rate value."
          }
        },
        "type": "object"
      },
      "qbo_emailaddress": {
        "additionalProperties": true,
        "properties": {
          "Address": {
            "description": "An email address. The address format must follow the RFC 822 standard.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_emailmessagesprefs": {
        "additionalProperties": true,
        "properties": {
          "EstimateMessage": {
            "$ref": "#/components/schemas/qbo_emailmessagetype",
            "description": "Email message details for Estimate."
          },
          "InvoiceMessage": {
            "$ref": "#/components/schemas/qbo_emailmessagetype",
            "description": "Email message details for Invoice."
          },
          "SalesReceiptMessage": {
            "$ref": "#/components/schemas/qbo_emailmessagetype",
            "description": "Email message details for SalesReceipt."
          },
          "StatementMessage": {
            "$ref": "#/components/schemas/qbo_emailmessagetype",
            "description": "Email message details for Statement."
          }
        },
        "type": "object"
      },
      "qbo_emailmessagetype": {
        "additionalProperties": true,
        "properties": {
          "Message": {
            "description": "The body of the email message.",
            "type": "string"
          },
          "Subject": {
            "description": "The subject of the email.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_employeerequest": {
        "additionalProperties": true,
        "properties": {
          "FamilyName": {
            "description": "Family name or the last name of the person. At least one of GivenName or FamilyName attributes is required.",
            "type": "string"
          },
          "GivenName": {
            "description": "Given name or Family name of a person. At least one of GivenName or FamilyName attributes is required.",
            "type": "string"
          },
          "PrimaryAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Represents the physical street address for this employee. If QuickBooks Payroll is enabled for the company, the following PhysicalAddress fields are required: City , maximum of 255 chars CountrySubDivisionCode , maximum of 255 chars PostalCode Required when QuickBooks Payroll is enabled. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          }
        },
        "type": "object"
      },
      "qbo_employeeresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "BillRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "This attribute can only be set if BillableTime is true. Not supported when QuickBooks Payroll is enabled."
          },
          "BillableTime": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "BirthDate": {
            "description": "Birth date of the employee.",
            "type": "string"
          },
          "CostRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Pay rate of the employee"
          },
          "DisplayName": {
            "description": "The name of the person or organization as displayed. Default Value: If not supplied, the system generates DisplayName by concatenating employee name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix . When QuickBooks Payroll is enabled, this attribute is read-only and a concatenation of GivenName , MiddleName , and FamilyName .",
            "type": "string"
          },
          "EmployeeNumber": {
            "description": "Specifies the ID number of the employee in the employer's directory.",
            "type": "string"
          },
          "FamilyName": {
            "description": "Family name or the last name of the person. At least one of GivenName or FamilyName attributes is required.",
            "type": "string"
          },
          "Gender": {
            "description": "Gender of the employee. To clear the gender value, set to Null in a full update request. Supported values include: Male or Female .",
            "type": "string"
          },
          "GivenName": {
            "description": "Given name or family name of a person. At least one of GivenName or FamilyName attributes is required.",
            "type": "string"
          },
          "HiredDate": {
            "description": "Hire date of the employee.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "MiddleName": {
            "description": "Middle name of the person. The person can have zero or more middle names.",
            "type": "string"
          },
          "Mobile": {
            "$ref": "#/components/schemas/qbo_telephonenumber",
            "description": "Mobile phone number."
          },
          "Organization": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "true --the object represents an organization. false --the object represents a person."
          },
          "PrimaryAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Represents the physical street address for this employee. If QuickBooks Payroll is enabled for the company, the following PhysicalAddress fields are required: City , maximum of 255 chars CountrySubDivisionCode , maximum of 255 chars PostalCode Required when QuickBooks Payroll is enabled. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "PrimaryEmailAddr": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Primary email address."
          },
          "PrimaryPhone": {
            "$ref": "#/components/schemas/qbo_telephonenumber",
            "description": "Primary phone number."
          },
          "PrintOnCheckName": {
            "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update. Not supported when QuickBooks Payroll is enabled.",
            "type": "string"
          },
          "ReleasedDate": {
            "description": "Release date of the employee.",
            "type": "string"
          },
          "SSN": {
            "description": "Social security number (SSN) of the employee. If SSN is set, it is masked in the response with XXX-XX-XXXX. If XXX-XX-XXXX is sent in the create or update request, XXX-XX-XXXX is ignored and the old value is preserved. This attribute cannot be passed in a request when QuickBooks Payroll is enabled. Code for this field must be removed before submitting.",
            "type": "string"
          },
          "Suffix": {
            "description": "Suffix of the name. For example, Jr . Not supported when QuickBooks Payroll is enabled.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Title": {
            "description": "Title of the person. This tag supports i18n, all locale. Not supported when QuickBooks Payroll is enabled.",
            "type": "string"
          },
          "V4IDPseudonym": {
            "description": "Employee reference number. For internal use only.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_entitlementsresponse": {
        "additionalProperties": true,
        "properties": {
          "CompanyStartDate": {
            "description": "DateTime when company file was created. This field and Metadata.CreateTime contain the same value.",
            "type": "string"
          },
          "CurrentUsers": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Billable users currently in the company."
          },
          "DaysRemainingTrial": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Remaining trial period days."
          },
          "Email": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Default email address."
          },
          "EmployerId": {
            "description": "Employer identifier (EIN).",
            "type": "string"
          },
          "Entitlement": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/qbo_telephonenumber",
                "description": "Primary phone number."
              },
              {
                "description": "Entitlement.id --Integer. Name of the entitlement. Entitlement.name --String. Name of the entitlement. Entitlement.Term --Boolean. Availability of entitlement: On or Off .",
                "items": {
                  "additionalProperties": true,
                  "type": "object"
                },
                "type": "array"
              }
            ]
          },
          "FiscalYearStartMonth": {
            "description": "The start month of fiscal year.",
            "type": "string"
          },
          "MaxUsers": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Maximum billable users allowed in the company."
          },
          "PlanName": {
            "description": "Billing plan associated with this company.",
            "type": "string"
          },
          "QboCompany": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Check if the company is a QuickBooks Online company. false is returned if not a QuickBooks Online company, the company exists in the Intuit ecosystem, but is not a QuickBooks Online company, or the company is a QuickBooks Online company, but the current user does not belong to the company."
          },
          "SupportedLanguages": {
            "description": "Comma separated list of languages.",
            "type": "string"
          },
          "Thresholds": {
            "description": "The threshold for this company.",
            "items": {
              "$ref": "#/components/schemas/qbo_threshold"
            },
            "type": "array"
          },
          "WebAddr": {
            "$ref": "#/components/schemas/qbo_websiteaddress",
            "description": "Website address."
          }
        },
        "type": "object"
      },
      "qbo_entity": {
        "additionalProperties": true,
        "properties": {
          "EntityRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Query the corresponding name list resource as specified by Entity to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively."
          },
          "Type": {
            "description": "Object type. Output only. Valid values are Vendor , Employee , or Customer .",
            "type": "string"
          }
        },
        "required": [
          "EntityRef"
        ],
        "type": "object"
      },
      "qbo_estimaterequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "Line": {
            "description": "The minimum line item required for the request is one of the following. Sales item line type Group item line type",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                }
              ]
            },
            "type": "array"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
          }
        },
        "required": [
          "Line",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_estimateresponse": {
        "additionalProperties": true,
        "properties": {
          "AcceptedBy": {
            "description": "Name of customer who accepted the estimate.",
            "type": "string"
          },
          "AcceptedDate": {
            "description": "Date estimate was accepted.",
            "type": "string"
          },
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "ExpirationDate": {
            "description": "Date by which estimate must be accepted before invalidation.",
            "type": "string"
          },
          "FreeFormAddress": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
          },
          "GlobalTaxCalculation": {
            "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipDate": {
            "description": "Date for delivery of goods or services.",
            "type": "string"
          },
          "ShipFromAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnStatus": {
            "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_exchangerateresponse": {
        "additionalProperties": true,
        "properties": {
          "AsOfDate": {
            "description": "Date on which this exchange rate was set.",
            "type": "string"
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The exchange rate between SourceCurrencyCode and TargetCurrencyCode on the AsOfDate date."
          },
          "SourceCurrencyCode": {
            "description": "The source currency from which the exchange rate is specified, and usually. Specify as a three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. For example, in the equation 65 INR = 1 USD , INR is the source currency.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TargetCurrencyCode": {
            "description": "The target currency against which the exchange rate is specified. Specify as a three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. For example, in the equation 65 INR = 1 USD , USA is the target currency.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_frenchpcgaccountlist": {
        "additionalProperties": true,
        "properties": {},
        "type": "object"
      },
      "qbo_generalledgerquery": {
        "additionalProperties": true,
        "properties": {
          "account": {
            "description": "Filters report contents to include information for specified accounts. Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id , of the Account object response code.",
            "type": "string"
          },
          "account_type": {
            "description": "(source_account_type) Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
            "type": "string"
          },
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: account_name, chk_print_state, create_by, create_date, cust_name, doc_num*, emp_name, inv_date, is_adj*, is_ap_paid, is_ar_paid, is_cleared, item_name, last_mod_by, last_mod_date, memo*, name*, quantity, rate, split_acc*, tx_date*, txn_type*, vend_name. Additional columns when sales tax enabled: net_amount, tax_amount, tax_code. Additional columns when sales tax enabled: net_amount, tax_amount, tax_code Additional columns when account numbering enabled: account_num. Additional columns when class tracking enabled: klass_name*. Additional columns when location tracking enabled: dept_name*. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . NonTracking status is enabled for the company if CompanyInfo.NameValue.Name.NonTracking is set to true . Currently enabled for Canadian company, other locales can be added in the future.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "source_account": {
            "description": "Filters report contents to include information for specified source accounts. Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id , of the Account object response code.",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_generalledgerqueryFR": {
        "additionalProperties": true,
        "properties": {
          "account": {
            "description": "Filters report contents to include information for specified accounts. Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id , of the Account object response code.",
            "type": "string"
          },
          "account_type": {
            "description": "(source_account_type) Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
            "type": "string"
          },
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "source_account": {
            "description": "Filters report contents to include information for specified source accounts. Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id , of the Account object response code.",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_groupline": {
        "additionalProperties": true,
        "properties": {
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to GroupLineDetail for this type of line.",
            "type": "string"
          },
          "GroupLineDetail": {
            "$ref": "#/components/schemas/qbo_grouplinedetail"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          }
        },
        "required": [
          "GroupLineDetail",
          "DetailType"
        ],
        "type": "object"
      },
      "qbo_grouplinedetail": {
        "additionalProperties": true,
        "properties": {
          "GroupItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a group item for all the lines that belong to the bundle. Query the Item name list resource to determine the appropriate Item group object ( Item.Type=Group ) for this reference. Use Item.Id and Item.Name from that object for GroupItemRef.value and GroupItemRef.name , respectively."
          },
          "Line": {
            "description": "Individual ItemLine elements that comprise a bundle. Returned in responses.",
            "items": {
              "$ref": "#/components/schemas/qbo_salesitemline"
            },
            "type": "array"
          },
          "Quantity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Quantity of the group item."
          }
        },
        "type": "object"
      },
      "qbo_inventoryadjustmentcreaterequest": {
        "additionalProperties": true,
        "properties": {
          "AdjustAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction.",
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of an inventory adjustment.",
            "items": {
              "$ref": "#/components/schemas/qbo_itemadjustmentline"
            },
            "type": "array"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          }
        },
        "required": [
          "DocNumber",
          "AdjustAccountRef",
          "Line",
          "TxnDate"
        ],
        "type": "object"
      },
      "qbo_inventoryadjustmentdeleterequest": {
        "additionalProperties": true,
        "properties": {
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "SyncToken",
          "id"
        ],
        "type": "object"
      },
      "qbo_inventoryadjustmentrequest": {
        "additionalProperties": true,
        "properties": {
          "AdjustAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively.",
            "readOnly": true
          },
          "DocNumber": {
            "description": "Reference number for the transaction.",
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of an inventory adjustment.",
            "items": {
              "$ref": "#/components/schemas/qbo_itemadjustmentline"
            },
            "type": "array"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          }
        },
        "required": [
          "AdjustAccountRef",
          "Line",
          "TxnDate"
        ],
        "type": "object"
      },
      "qbo_inventoryadjustmentresponse": {
        "additionalProperties": true,
        "properties": {
          "AdjustAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively.",
            "readOnly": true
          },
          "DocNumber": {
            "description": "Reference number for the transaction.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of an inventory adjustment.",
            "items": {
              "$ref": "#/components/schemas/qbo_itemadjustmentline"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          }
        },
        "required": [
          "TxnDate",
          "Line",
          "AdjustAccountRef"
        ],
        "type": "object"
      },
      "qbo_inventoryvaluationdetailquery": {
        "additionalProperties": true,
        "properties": {
          "columns": {
            "description": "Column types to show in the report. Supported Values: tx_date, txn_id, txn_type, doc_num, name, quantity, rate, home_amount, qty_on_hand, asset_value, create_date, create_by, last_mod_date, last_mod_by, item_sku, memo, exch_rate, account_name, service_date, rate_inventory, qty_on_hand, asset_value_nt, tracking_num",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used.",
            "type": "string"
          },
          "end_svcdate": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used.",
            "type": "string"
          },
          "group_by": {
            "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type, Customer, Vendor, Employee, Location, Payment Method, Day, Week, Month, Quarter, Year, None",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used.",
            "type": "string"
          },
          "start_svcdate": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used.",
            "type": "string"
          },
          "svcdate_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_inventoryvaluationquery": {
        "additionalProperties": true,
        "properties": {
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "item": {
            "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_invoicerequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "Line": {
            "description": "The minimum line item required for the request is one of the following. SalesItemLine , GroupLine and Inline subtotal using DescriptionOnlyLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                }
              ]
            },
            "type": "array"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          }
        },
        "required": [
          "CustomerRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_invoiceresponse": {
        "additionalProperties": true,
        "properties": {
          "AllowIPNPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
          },
          "AllowOnlineACHPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
          },
          "AllowOnlineAffirmPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
          },
          "AllowOnlineCreditCardPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
          },
          "AllowOnlinePayPalPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
          },
          "AllowOnlinePayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
          },
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "BillEmailBcc": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
          },
          "BillEmailCc": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DeliveryInfo": {
            "$ref": "#/components/schemas/qbo_deliveryinfo",
            "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
            "readOnly": true
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "Deposit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The deposit made towards this invoice."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "FreeFormAddress": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "InvoiceLink": {
            "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipDate": {
            "description": "Date for delivery of goods or services.",
            "type": "string"
          },
          "ShipFromAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/qbo_referencetype",
                "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                "readOnly": true
              },
              {
                "maxProperties": 0,
                "type": "object"
              }
            ]
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TrackingNum": {
            "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
            "type": "string"
          },
          "TransactionLocationType": {
            "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "Line",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_invoicevoidresponse": {
        "additionalProperties": true,
        "properties": {
          "AllowIPNPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
          },
          "AllowOnlineACHPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
          },
          "AllowOnlineAffirmPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
          },
          "AllowOnlineCreditCardPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
          },
          "AllowOnlinePayPalPayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
          },
          "AllowOnlinePayment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
          },
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "BillEmailBcc": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
          },
          "BillEmailCc": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DeliveryInfo": {
            "$ref": "#/components/schemas/qbo_deliveryinfo",
            "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
            "readOnly": true
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "Deposit": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The deposit made towards this invoice."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "FreeFormAddress": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "InvoiceLink": {
            "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipDate": {
            "description": "Date for delivery of goods or services.",
            "type": "string"
          },
          "ShipFromAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TrackingNum": {
            "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "type": "object"
      },
      "qbo_itemadjustmentline": {
        "additionalProperties": true,
        "properties": {
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "DetailType": {
            "description": "Set to ItemAdjustmentLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "ItemAdjustmentLineDetail": {
            "$ref": "#/components/schemas/qbo_itemadjustmentlinedetail",
            "description": "Details for the line in the inventory adjustment."
          }
        },
        "required": [
          "ItemAdjustmentLineDetail"
        ],
        "type": "object"
      },
      "qbo_itemadjustmentlinedetail": {
        "additionalProperties": true,
        "properties": {
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to an Item object. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively."
          },
          "QtyDiff": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Change in quantity. Set it to a positive number for incrementing and a negative number if for decrementing the quantity."
          }
        },
        "required": [
          "QtyDiff"
        ],
        "type": "object"
      },
      "qbo_itembasedexpenseline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to ItemBasedExpenseLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "ItemBasedExpenseLineDetail": {
            "$ref": "#/components/schemas/qbo_itembasedexpenselinedetail"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          }
        },
        "required": [
          "ItemBasedExpenseLineDetail",
          "Amount",
          "DetailType"
        ],
        "type": "object"
      },
      "qbo_itembasedexpenselinebill": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to ItemBasedExpenseLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "ItemBasedExpenseLineDetail": {
            "$ref": "#/components/schemas/qbo_itembasedexpenselinedetail"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to PurchaseOrder or it can also be set to ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction. When updating an existing Bill to link to a PurchaseOrder a new Line must be created. This behavior matches the QuickBooks UI as it does not allow the linking of an existing line, but rather a new line must be added to link the PurchaseOrder. Over the API this is achieved by simply updating the Bill Line.Id to something new. This will ensure old bill line is deleted and the new line is linked to the PurchaseOrder. Be aware that for this PurchaseOrder-Bill linking to work all LinkedTxn child attributes are required. See child attributes below.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          }
        },
        "required": [
          "ItemBasedExpenseLineDetail",
          "Amount",
          "DetailType"
        ],
        "type": "object"
      },
      "qbo_itembasedexpenselinedetail": {
        "additionalProperties": true,
        "properties": {
          "BillableStatus": {
            "description": "The billable status of the expense. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled",
            "readOnly": true,
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the expense. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Item. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. When a line lacks an ItemRef it is treated as documentation and the Line.Amount attribute is ignored. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "MarkupInfo": {
            "$ref": "#/components/schemas/qbo_markupinfo",
            "description": "Markup information for the expense."
          },
          "PriceLevelRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the PriceLevel of the service or item for the line. Support for this element will be available in the coming months."
          },
          "Qty": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Number of items for the line."
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TaxInclusiveAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The total amount of the line item including tax."
          },
          "UnitPrice": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Unit price of the subject item as referenced by ItemRef . Corresponds to the Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
          }
        },
        "type": "object"
      },
      "qbo_itemgroupdetail": {
        "additionalProperties": true,
        "properties": {
          "ItemGroupLine": {
            "description": "One or more Item objects that comprise a bundle; objects must already exist in the company. Query the Item name list resource for the Item objects that go into the bundle. For each object, create an ItemRef element. Use Item.Id , Item.FullyQualifiedName , and Item.Type for ItemRef.value , ItemRef.name , and ItemRef.type respectively.",
            "items": {
              "$ref": "#/components/schemas/qbo_itemgroupline"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_itemgroupline": {
        "additionalProperties": true,
        "properties": {
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_itemreftype"
          },
          "Qty": {
            "description": "The quantity of this object to include in the bundle.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_itemreceiptline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to ItemReceiptLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          }
        },
        "required": [
          "Amount",
          "DetailType"
        ],
        "type": "object"
      },
      "qbo_itemreftype": {
        "additionalProperties": true,
        "properties": {
          "name": {
            "description": "An identifying name for the object being referenced by value . Use Item.FullyQualifiedName to populate this field.",
            "type": "string"
          },
          "type": {
            "description": "The item type for this reference. Use Item.Type to populate this field.",
            "type": "string"
          },
          "value": {
            "description": "The ID for the referenced item object as found in the Item.Id field of the Item object payload.",
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "qbo_itemrequest": {
        "additionalProperties": true,
        "properties": {
          "AssetAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Must be an account with account type of Other Current Asset . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "ExpenseAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. For France locales: This is an optional field. This is the purchase account id, If not provided it defaults to the default purchase account: 605100 and 601100 are the default expense accounts used for Service and Product type of item, respectively. Required for Inventory , NonInventory , and Service item types."
          },
          "IncomeAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. For France locales: This is an optional field. This is the sales account id, If not provided it defaults to the default sales account: 706100 and 707100 are the default expense accounts used for Service and Product type of item, respectively. Required for Inventory and Service item types."
          },
          "InvStartDate": {
            "description": "Date of opening balance for the inventory transaction. Required when creating an Item.Type=Inventory . Required for Inventory item types.",
            "type": "string"
          },
          "Name": {
            "description": "Name of the item. This value must be unique, at least one character in length, and cannot include tabs, new lines, or colons. Required for create.",
            "type": "string"
          },
          "QtyOnHand": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
          },
          "Type": {
            "description": "Classification that specifies the use of this item. See the description at the top of the Item entity page for details about supported item types. Used for goods the company sells and buys that are tracked as inventory. Service --Default setting when TrackQtyOnHand , InvStartDate , and AssetAccountRef are not specified. Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. This field is required to be explicitly set with one of the following: Inventory --Used for goods the company sells and buys that are tracked as inventory. Service --Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. NonInventory --Use for goods the company sells and buys that are not tracked as inventory. For example, office supplies or goods bought on behalf of the customer. .",
            "type": "string"
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_itemresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, the object is currently enabled for use by QuickBooks."
          },
          "AssetAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Description of the item.",
            "type": "string"
          },
          "ExpenseAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. Required for Inventory , NonInventory , and Service item types."
          },
          "FullyQualifiedName": {
            "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Item:SubItem . Returned from an existing object and not input on a new object.Limited to 5 levels.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "IncomeAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. Required for Inventory and Service item types."
          },
          "InvStartDate": {
            "description": "Date of opening balance for the inventory transaction. For read operations, the date returned in this field is always the originally provided inventory start date. For update operations, the date supplied is interpreted as the inventory adjust date, is stored as such in the underlying data model, and is reflected in the QuickBooks Online UI for the object. The inventory adjust date is not exposed for read operations through the API. Required for Inventory type items.",
            "type": "string"
          },
          "Level": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be the next level with respect to the parent. Limited to 5 levels.",
            "readOnly": true
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "Name of the item. This value is unique.",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The immediate parent of the sub item in the hierarchical Item:SubItem list. If SubItem is true, then ParenRef is required. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "PrefVendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
          },
          "PurchaseCost": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
          },
          "PurchaseDesc": {
            "description": "Purchase description for the item.",
            "type": "string"
          },
          "PurchaseTaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
          },
          "PurchaseTaxIncluded": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
          },
          "QtyOnHand": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
          },
          "ReorderPoint": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
          },
          "SalesTaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
          },
          "SalesTaxIncluded": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
          },
          "Sku": {
            "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
            "type": "string"
          },
          "Source": {
            "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
            "type": "string"
          },
          "SubItem": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this is a sub item. If false or null, this is a top-level item. Creating inventory hierarchies with traditional inventory items is being phased out in lieu of using categories and sub categories."
          },
          "SyncToken": {
            "description": "Version number of the entity. Required for the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "TaxClassificationRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
          },
          "Taxable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
          },
          "TrackQtyOnHand": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
          },
          "Type": {
            "description": "Classification that specifies the use of this item. See the description at the top of the Item entity page for details about supported item types. This field is required to be explicitly set with one of the following: Inventory --Used for goods the company sells and buys that are tracked as inventory. Service --Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. NonInventory --Use for goods the company sells and buys that are not tracked as inventory. For example, office supplies or goods bought on behalf of the customer. .",
            "type": "string"
          },
          "UnitPrice": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_itemsalesquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "If not specified value of date_macro is used. The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range.",
            "type": "string"
          },
          "end_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "item": {
            "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "If not specified value of date_macro is used. The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range.",
            "type": "string"
          },
          "start_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_jobinfo": {
        "additionalProperties": true,
        "properties": {
          "Description": {
            "description": "Job description.",
            "type": "string"
          },
          "EndDate": {
            "description": "End date of the job.",
            "type": "string"
          },
          "JobTypeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the JobType."
          },
          "ProjectedEndDate": {
            "description": "Projected end date of the job.",
            "type": "string"
          },
          "StartDate": {
            "description": "Starting date of the Job.",
            "type": "string"
          },
          "Status": {
            "description": "Current status of the job. Valid values: Awarded , Closed , InProgress , NotAwarded , Pending",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_journalentryline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to JournalEntryLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. In requests, if Id matches that for an existing line in the transaction the line is updated. Otherwise, a new line is created. Integer as string.",
            "readOnly": true,
            "type": "string"
          },
          "JournalEntryLineDetail": {
            "$ref": "#/components/schemas/qbo_journalentrylinedetail"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          }
        },
        "required": [
          "JournalEntryLineDetail",
          "DetailType",
          "Amount"
        ],
        "type": "object"
      },
      "qbo_journalentrylinedetail": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the account associated with this line. Query the Account name list resource to determine the appropriate Account object for this reference, based on the side of the journal entry represented by this line. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
          },
          "BillableStatus": {
            "description": "The billable status of the journal entry line. The line is to be billed to a customer if the account is an expense account and EntityRef specifies a Customer object. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled",
            "readOnly": true,
            "type": "string"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "Entity": {
            "$ref": "#/components/schemas/qbo_entity",
            "description": "When you use Accounts Receivable , you must choose a customer in the Name field. When you use Accounts Payable , you must choose a supplier/vendor in the Name field."
          },
          "PostingType": {
            "description": "Indicates whether this JournalEntry line is a debit or credit. Valid values: Credit , Debit",
            "type": "string"
          },
          "TaxAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Tax amount of the line."
          },
          "TaxApplicableOn": {
            "description": "Indicates whether the tax applicable on the line is sales or purchase. Valid value: Sales , Purchase . Required if TaxCodeRef is specified",
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TaxInclusiveAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The total amount of the line items including tax."
          }
        },
        "required": [
          "PostingType",
          "AccountRef"
        ],
        "type": "object"
      },
      "qbo_journalentryrequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "Line": {
            "description": "Individual line items of a journal entry. Two line items are required: one with PostingType set to Debit and one with PostingType set to Credit . Set Line.DetailType to JournalEntryLine for both lines.",
            "items": {
              "$ref": "#/components/schemas/qbo_journalentryline"
            },
            "type": "array"
          }
        },
        "required": [
          "Line"
        ],
        "type": "object"
      },
      "qbo_journalentryresponse": {
        "additionalProperties": true,
        "properties": {
          "Adjustment": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates whether this transaction is a journal entry adjustment."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "DocNumber": {
            "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_journalentryline"
                },
                {
                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                }
              ]
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxRateRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "Line"
        ],
        "type": "object"
      },
      "qbo_journalreportquery": {
        "additionalProperties": true,
        "properties": {
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: acct_num_with_extn*, account_name*, credit_amt*, create_by, create_date, debt_amt*, doc_num*, due_date*, is_ar_paid*, is_ap_paid*, item_name, journal_code_name*, last_mod_by, last_mod_date, memo*, name, neg_open_bal, paid_date*, pmt_mthd, quantity, rate, tx_date*, txn_num*, txn_type*",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "journal_code": {
            "description": "Filters report contents to include information for specified journal codes. Supported Values: One or more comma separated journal codes. For example AN, BQ1, VT, and so on.",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_journalreportqueryUS": {
        "additionalProperties": true,
        "properties": {
          "columns": {
            "description": "Default columns included in the report are denoted with *. Column types to be shown in the report. Supported Values: acct_num_with_extn*, account_name*, credit_amt*, create_by, create_date, debt_amt*, doc_num*, due_date*, is_ar_paid*, is_ap_paid*, item_name, journal_code_name*, last_mod_by, last_mod_date, memo*, name, neg_open_bal, paid_date*, pmt_mthd*, quantity, rate, tx_date*, txn_num*, txn_type* To retrieve the account number (acct_num_with_extn) it's also needed to request the account name (account_name) in the same request. The account number will only be returned if the company has enabled the 'enable account numbers' option in its Chart of Accounts preferences.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_line": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "LinkedTxn": {
            "description": "Transaction to which the current entity is related. For example, an invoice line may link to a sales order or estimate.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "Received": {
            "description": "Supported for Purchase Order only. The amount/quantity received of the line, which depends on the type of the line. It can represent the received amount or received quantity based on the line type detail. Applies to existing and new entities.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "Amount"
        ],
        "type": "object"
      },
      "qbo_linelinkedtxn": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "LinkedTxn": {
            "description": "Transaction to which the current entity is related. For example, a billpayment line links to the originating bill object for which the billpayment is applied.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          }
        },
        "required": [
          "Amount",
          "LinkedTxn"
        ],
        "type": "object"
      },
      "qbo_linkedtxn": {
        "additionalProperties": true,
        "properties": {
          "TxnId": {
            "description": "Transaction Id of the related transaction.",
            "type": "string"
          },
          "TxnLineId": {
            "description": "Required for Deposit and Bill entities. The line number of a specific line of the linked transaction. If supplied, the TxnId and TxnType attributes of the linked transaction must also be populated.",
            "type": "string"
          },
          "TxnType": {
            "description": "Transaction type of the linked object.",
            "type": "string"
          }
        },
        "required": [
          "TxnId",
          "TxnType"
        ],
        "type": "object"
      },
      "qbo_linkedtxnBill": {
        "additionalProperties": true,
        "properties": {
          "TxnId": {
            "description": "Transaction Id of the related PurhaseOrder.",
            "type": "string"
          },
          "TxnLineId": {
            "description": "The line number of a specific line of the PurchaseOrder. This is required at the Line level of a Bill.",
            "type": "string"
          },
          "TxnType": {
            "description": "This should be set to PurchaseOrder .",
            "type": "string"
          }
        },
        "required": [
          "TxnLineId",
          "TxnId",
          "TxnType"
        ],
        "type": "object"
      },
      "qbo_markupinfo": {
        "additionalProperties": true,
        "properties": {
          "MarkUpIncomeAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The account associated with the markup. Available with invoice objects, only, and when linktxn specified a ReimburseCharge .",
            "readOnly": true
          },
          "Percent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Markup amount expressed as a percent of charges already entered in the current transaction. To enter a rate of 10% use 10.0, not 0.01."
          },
          "PriceLevelRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a PriceLevel for the markup. Support for this element will be available in the coming months."
          }
        },
        "type": "object"
      },
      "qbo_memoref": {
        "additionalProperties": true,
        "properties": {
          "value": {
            "description": "User-entered message to the customer; this message is visible to the end user on their transactions.",
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "qbo_modificationmetadata": {
        "additionalProperties": true,
        "properties": {
          "CreateTime": {
            "description": "Time the entity was created in the source domain.",
            "readOnly": true,
            "type": "string"
          },
          "LastUpdatedTime": {
            "description": "Time the entity was last updated in the source domain.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_paymentline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to PaymentLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "PaymentLineDetail": {
            "$ref": "#/components/schemas/qbo_paymentlinedetail",
            "description": "Discount detail type for the entire transaction. This is in contrast to a discount applied to a specific line. The company preference Sales Form Entry | Discounts must be enabled for this type of line to be available. Must be enabled for this type of line to be available."
          }
        },
        "required": [
          "DetailType",
          "Amount",
          "PaymentLineDetail"
        ],
        "type": "object"
      },
      "qbo_paymentlinedetail": {
        "additionalProperties": true,
        "properties": {
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the unpaid amount of the transaction after this payment is applied.",
            "readOnly": true
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the expense. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "Discount": {
            "$ref": "#/components/schemas/qbo_discountoverride",
            "description": "Reference to a Discount item and its properties that this line can overwrite."
          },
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Item. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. When a line lacks an ItemRef it is treated as documentation and the Line.Amount attribute is ignored. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          }
        },
        "type": "object"
      },
      "qbo_paymentmethodrequest": {
        "additionalProperties": true,
        "properties": {
          "Name": {
            "description": "User recognizable name for the payment method.",
            "type": "string"
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_paymentmethodresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the payment method.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Defines the type of payment. Valid values include CREDIT_CARD or NON_CREDIT_CARD .",
            "type": "string"
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_paymentrequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes."
          }
        },
        "required": [
          "TotalAmt",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_paymentresponse": {
        "additionalProperties": true,
        "properties": {
          "CreditCardPayment": {
            "$ref": "#/components/schemas/qbo_creditcardpayment",
            "description": "Information about a payment received by credit card. Inject with data only if the payment was transacted through Intuit Payments API."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Identifies the account to be used for this payment. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Zero or more transactions accounting for this payment. Values for Line.LinkedTxn.TxnType can be one of the following: Expense --Payment is reimbursement for expense paid by cash made on behalf of the customer Check --Payment is reimbursement for expense paid by check made on behalf of the customer CreditCardCredit --Payment is reimbursement for a credit card credit made on behalf of the customer JournalEntry --Payment is linked to the representative journal entry CreditMemo --Payment is linked to the credit memo the customer has with the business Invoice --The invoice to which payment is applied Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/qbo_linelinkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PaymentRefNum": {
            "description": "The reference number for the payment received. For example, Check # for a check, envelope # for a cash donation.",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O."
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "UnappliedAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the amount that has not been applied to pay amounts owed for sales transactions.",
            "readOnly": true
          }
        },
        "required": [
          "TotalAmt",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_pcesalesitemline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item. For Invoice objects in global locales: when updating Amount , remove the TxnTaxDetail element in the object before submitting it in the update request payload."
          },
          "CostAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The total cost of the line item. Corresponds to the Your total column on the QuickBooks Online UI to specify the total cost before the Markup applies. Note: If Project Cost setting is set to SIMPLE on the Project, you can read or write this attribute. If Project Costing is set to DETAILED , use Project Budget API instead."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to SalesItemLineDetail for this type of line.",
            "type": "string"
          },
          "HomeCostAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item before Markup applies. If multicurrency is enabled for the company: the value is equal to CostAmount times ExchangeRate . Note: If Project Cost setting is set to SIMPLE on the Project, you can read or write this attribute. If Project Costing is set to DETAILED , use Project Budget API instead."
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "SalesItemLineDetail": {
            "$ref": "#/components/schemas/qbo_pcesalesitemlinedetail"
          }
        },
        "required": [
          "DetailType",
          "SalesItemLineDetail",
          "Amount",
          "CostAmount",
          "HomeCostAmount"
        ],
        "type": "object"
      },
      "qbo_pcesalesitemlinedetail": {
        "additionalProperties": true,
        "properties": {
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class for the line item. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "ItemAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Available with invoice objects, only, and when there is a linkedtxn of type ReimburseCharge for this object. When ItemRef.Id is set to 1, ItemAccountRef maps to the reimbursable charge account."
          },
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to an Item object. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. Set ItemRef.value to SHIPPING_ITEM_ID when Line.amount represents transaction-wide shipping charges. Valid when Preferences.SalesFormsPrefs.AllowShipping is set to true . Set ItemRef.value to GRATUITY_ITEM_ID when Line.amount represents transaction-wide gratuity amount. Valid when Preferences.OtherPrefs.Name.SalesFormsPrefs.AllowGratuity is set to true . When a line lacks an ItemRef it is treated as documentation and the Line.Amount attribute is ignored. Applicable to invoice objects, only, and when linktxn specifies a ReimburseCharge . When Item.Id is set to 1, ItemAccountRef refers to reimburse expense account Id. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "MarkupInfo": {
            "$ref": "#/components/schemas/qbo_markupinfo",
            "description": "Used to define markup when this line represents a billable expense on the invoice. Markup information for the billable expense line."
          },
          "Qty": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Number of items for the line."
          },
          "ServiceDate": {
            "description": "Date when the service is performed.",
            "type": "string"
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "UnitCostPrice": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Unit cost price of the subject item as referenced by ItemRef . Corresponds to the Your rate column on the QuickBooks Online UI to specify the cost rate before the Markup applies. Note: If Project Cost setting is set to SIMPLE on the Project, you can read or write this attribute. If Project Costing is set to DETAILED , use Project Budget API instead."
          },
          "UnitPrice": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Unit price of the subject item as referenced by ItemRef . Corresponds to the Customer rate column on the QuickBooks Online UI to specify the rate after the Markup applies"
          }
        },
        "type": "object"
      },
      "qbo_physicaladdress": {
        "additionalProperties": true,
        "properties": {
          "City": {
            "description": "City name.",
            "type": "string"
          },
          "Country": {
            "description": "For international addresses, the request can be an ISO alpha-3 code or the full name of the country. The response for update and read operations returns ISO alpha-3 country codes only.",
            "type": "string"
          },
          "CountrySubDivisionCode": {
            "description": "Region within a country. For example, state name for USA, province name for Canada.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier of the QuickBooks object for the address, autoincremented when the address is changed. This is an internal value included for backwards compatibility and can be ignored.",
            "readOnly": true,
            "type": "string"
          },
          "Line1": {
            "description": "First line of the address.",
            "type": "string"
          },
          "Line2": {
            "description": "Second line of the address.",
            "type": "string"
          },
          "Line3": {
            "description": "Third line of the address.",
            "type": "string"
          },
          "Line4": {
            "description": "Fourth line of the address.",
            "type": "string"
          },
          "Line5": {
            "description": "Fifth line of the address.",
            "type": "string"
          },
          "PostalCode": {
            "description": "Postal code. For example, zip code for USA and Canada",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_preferencesresponse": {
        "additionalProperties": true,
        "properties": {
          "AccountingInfoPrefs": {
            "$ref": "#/components/schemas/qbo_accountinginfoprefs",
            "description": "The following settings are available for QuickBooks Online Plus editions, only. To determine this edition type, query the value of the OfferingSku CustomerInfo.Name name/value pair for QuickBooks Online Plus ."
          },
          "CurrencyPrefs": {
            "$ref": "#/components/schemas/qbo_currencyprefs"
          },
          "EmailMessagesPrefs": {
            "$ref": "#/components/schemas/qbo_emailmessagesprefs"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "OtherPrefs": {
            "additionalProperties": true,
            "description": "Specifies extension of Preference resource to allow extension of Name-Value pair based extension at the top level.",
            "type": "object"
          },
          "ProductAndServicesPrefs": {
            "$ref": "#/components/schemas/qbo_productandservicesprefs"
          },
          "ReportPrefs": {
            "$ref": "#/components/schemas/qbo_reportprefs"
          },
          "SalesFormsPrefs": {
            "$ref": "#/components/schemas/qbo_salesformspref"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxPrefs": {
            "$ref": "#/components/schemas/qbo_taxprefs"
          },
          "TimeTrackingPrefs": {
            "$ref": "#/components/schemas/qbo_timetrackingprefs"
          },
          "VendorAndPurchasesPrefs": {
            "$ref": "#/components/schemas/qbo_vendorandpurchaseprefs"
          }
        },
        "type": "object"
      },
      "qbo_productandservicesprefs": {
        "additionalProperties": true,
        "properties": {
          "ForPurchase": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Product and Services for Purchase enabled."
          },
          "ForSales": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Product and Services for Sales enabled."
          },
          "QuantityOnHand": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Quantity on hand enabled."
          },
          "QuantityWithPriceAndRate": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Quantity with price and rate enabled."
          },
          "RecognitionFrequencyType": {
            "description": "Indicates how frequently revenue is recognised.Possible values are Daily, Weekly, Monthly.(QBO Advanced only)",
            "type": "string"
          },
          "RevenueRecognitionEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Revenue recognition enabled.(QBO Advanced only)"
          }
        },
        "type": "object"
      },
      "qbo_profitandlossdetailquery": {
        "additionalProperties": true,
        "properties": {
          "account": {
            "description": "(source_account_type) Filters report contents to include information for specified accounts. Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id , of the Account object response code.",
            "type": "string"
          },
          "account_type": {
            "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
            "type": "string"
          },
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "adjusted_gain_loss": {
            "description": "Specifies whether unrealized gain and losses are included in the report. Supported Values: true , false",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: create_by, create_date, doc_num*, last_mod_by, last_mod_date, memo*, name*, pmt_mthd, split_acc*, tx_date*, txn_type* Additional columns with tax enabled: tax_code Additional columns with class tracking enabled: klass_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . NonTracking status is enabled for the company if CompanyInfo.NameValue.Name.NonTracking is set to true . Currently enabled for Canadian company, other locales can be added in the future.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "employee": {
            "description": "Filters report contents to include information for specified employees. Supported Values: One or more comma separated account IDs as returned in the attribute, Employee.Id , of the Employee entity response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "payment_method": {
            "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_profitandlossdetailstoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/qbo_reportheader",
            "description": "The report header NOTE : Headers might be missing in some of the rows since some of the transactions are directly under an account(X) which might have other sub accounts(x1,x2...) as children. All the transactions that are directly under an account(X) are grouped into one section(x0) without an header(As it is not under any other children). This section(x0) becomes the sibling of all children accounts(x1,x2...) of (X). So, we can see headers for sections of children accounts(x1,x2...) but not for (x0)."
          },
          "Rows": {
            "$ref": "#/components/schemas/qbo_reportrows",
            "description": "Top level container holding information for report rows."
          }
        },
        "type": "object"
      },
      "qbo_profitandlossquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "adjusted_gain_loss": {
            "description": "Specifies whether unrealized gain and losses are included in the report. Supported Values: true , false",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "item": {
            "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_profitandlossreportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_profitandlossreporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/qbo_profitandlossreportrows",
            "description": "Top level container holding information for profit and loss report rows."
          }
        },
        "type": "object"
      },
      "qbo_projectestimaterequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "Line": {
            "description": "The minimum line item required for the request is one of the following. Sales item line type Group item line type",
            "items": {
              "$ref": "#/components/schemas/qbo_pcesalesitemline"
            },
            "type": "array"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          }
        },
        "required": [
          "Line",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_projectestimateresponse": {
        "additionalProperties": true,
        "properties": {
          "AcceptedBy": {
            "description": "Name of customer who accepted the estimate.",
            "type": "string"
          },
          "AcceptedDate": {
            "description": "Date estimate was accepted.",
            "type": "string"
          },
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "For Project Estimate, CustomerRef must reference to a project. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "ExpirationDate": {
            "description": "Date by which estimate must be accepted before invalidation.",
            "type": "string"
          },
          "FreeFormAddress": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "HomeTotalCostAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Note: If Project Cost setting is set to SIMPLE on the Project, you can read or write this attribute. If Project Costing is set to DETAILED , use Project Budget API instead.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
            "items": {
              "$ref": "#/components/schemas/qbo_pcesalesitemline"
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipDate": {
            "description": "Date for delivery of goods or services.",
            "type": "string"
          },
          "ShipFromAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TotalCostAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency or foreign currency. Corresponds to the sum of Your total column on the QuickBooks Online UI to specify the total cost before the Markup applies. Applicable if multicurrency is enabled for the company. Note: If Project Cost setting is set to SIMPLE on the Project, you can read or write this attribute. If Project Costing is set to DETAILED , use Project Budget API instead.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnStatus": {
            "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_purchaseorderitemline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to PurchaseOrderItemLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "PurchaseOrderItemLineDetail": {
            "$ref": "#/components/schemas/qbo_purchaseorderitemlinedetail"
          }
        },
        "required": [
          "DetailType",
          "Amount",
          "PurchaseOrderItemLineDetail"
        ],
        "type": "object"
      },
      "qbo_purchaseorderitemlinedetail": {
        "additionalProperties": true,
        "properties": {
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class for the line item."
          },
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Item. When a line lacks an ItemRef it is treated as documentation and the Line.Amount attribute is ignored. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "ManuallyClosed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "The item on the line is marked as if fully received, but it is closed as no longer available."
          },
          "MarkupInfo": {
            "$ref": "#/components/schemas/qbo_markupinfo",
            "description": "Markup information for the expense."
          },
          "OpenQty": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Represents the difference between the quantity ordered and actually received.",
            "readOnly": true
          },
          "PriceLevelRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the PriceLevel of the service or item for the line."
          },
          "Qty": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Number of items to be purchased."
          },
          "ServiceDate": {
            "$ref": "#/components/schemas/qbo_date",
            "description": "Date when the service is performed."
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxCode for the purchase of this item."
          },
          "UnitPrice": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Unit price of the subject item as referenced by ItemRef . Corresponds to the Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
          }
        },
        "type": "object"
      },
      "qbo_purchaseorderrequest": {
        "additionalProperties": true,
        "properties": {
          "APAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies which AP account to which the bill is credited. Many/most small businesses have a single AP account, so the account can be implied. When specified, the account must be a Liability account, and further, the sub-type must be of type Payables. We strongly recommend that the AP Account be explicitly specified in all cases as companies that have more then one AP account will encounter unexpected errors when relating transactions to each other."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: Item line. Note: The ItemRef in the ItemBasedExpenseLine below must reference an Item in QBO that has an expense account linked to it (e.g. in the ExpenseAccountRef field of the Item). Otherwise the request fails in QBO with a 'You must select an account for this transaction.' error.",
            "items": {
              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
            },
            "type": "array"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The vendor reference for this transaction."
          }
        },
        "required": [
          "APAccountRef",
          "VendorRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_purchaseorderresponse": {
        "additionalProperties": true,
        "properties": {
          "APAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "DueDate": {
            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the purchase order. Valid values: NotSet , NeedToSend , EmailSent",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                },
                {
                  "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more Bill objects linked to this purchase order; LinkedTxn.TxnType is set to Bill . To retrieve details of a linked Bill transaction, issue a separate request to read the Bill whose ID is linkedTxn.TxnId .",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "Memo": {
            "description": "A message for the vendor. This text appears on the Purchase Order object sent to the vendor.",
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "POEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Used to specify the vendor e-mail address where the purchase req is sent."
          },
          "POStatus": {
            "description": "Purchase order status. Valid values are: Open and Closed .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the purchase order to the vendor. This field maps to the Memo field on the Purchase Order form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the PurchaseOrder was created from.",
            "readOnly": true
          },
          "SalesTermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Address to which the vendor shipped or will ship any goods associated with the purchase. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the user-defined ShipMethod associated with the transaction. Store shipping method string in both ShipMethodRef.value and ShipMethodRef.name ."
          },
          "ShipTo": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the customer to whose shipping address the order will be shipped to."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          },
          "VendorAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Address to which the payment should be sent. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "required": [
          "APAccountRef",
          "VendorRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_purchaserequest": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies the account reference. Check must specify bank account, CreditCard must specify credit card account. Validation Rules:Valid and Active Account Reference of an appropriate type."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line type for create: AccountBasedExpenseLine",
            "items": {
              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
            },
            "type": "array"
          },
          "PaymentType": {
            "description": "Payment Type can be: Cash , Check , or CreditCard .",
            "type": "string"
          }
        },
        "required": [
          "PaymentType",
          "AccountRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_purchaseresponse": {
        "additionalProperties": true,
        "properties": {
          "AccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies the account reference to which this purchase is applied based on the PaymentType . A type of Check should have bank account, CreditCard should specify credit card account, etc. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
          },
          "Credit": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "EntityRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "IncludeInAnnualTPAR": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include ItemBasedExpenseLine (Available if Preferences.ProductAndServicesPrefs.ForPurchase is set to true ) and AccountBasedExpenseLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                },
                {
                  "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PaymentType": {
            "description": "Type can be Cash , Check , or CreditCard .",
            "type": "string"
          },
          "PrintStatus": {
            "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
            "type": "string"
          },
          "PurchaseEx": {
            "additionalProperties": true,
            "description": "For internal use.",
            "type": "object"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
            "readOnly": true
          },
          "RemitToAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "Line",
          "PaymentType",
          "AccountRef"
        ],
        "type": "object"
      },
      "qbo_recurringinfo": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This setting indicates whether the recurring schedule is enabled."
          },
          "Name": {
            "description": "The name of the recurring schedule template.",
            "type": "string"
          },
          "RecurType": {
            "description": "The recur type which can be Automated , Reminded or UnScheduled .",
            "type": "string"
          },
          "ScheduleInfo": {
            "$ref": "#/components/schemas/qbo_recurringscheduleinfo",
            "description": "Describes the scheduling information for the transaction."
          }
        },
        "type": "object"
      },
      "qbo_recurringscheduleinfo": {
        "additionalProperties": true,
        "properties": {
          "DayOfMonth": {
            "anyOf": [
              {
                "description": "The day of the month.",
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "DayOfWeek": {
            "description": "The day of the week.",
            "type": "string"
          },
          "DaysBefore": {
            "anyOf": [
              {
                "description": "The days before the scheduled date.",
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "EndDate": {
            "description": "The end date for the recurring schedule.",
            "type": "string"
          },
          "IntervalType": {
            "description": "Specifies the interval type. Values for IntervalType can be one of the following: Yearly — The allowed properties for yearly interval type are : ScheduleInfo.StartDate ScheduleInfo.EndDate or ScheduleInfo.MaxOccurrences ScheduleInfo.DaysBefore (or ScheduleInfo.RemindDays for Reminded RecurType) ScheduleInfo.MonthOfYear ScheduleInfo.DayOfMonth Monthly — The allowed properties for monthly interval type are : ScheduleInfo.NumInterval ScheduleInfo.StartDate ScheduleInfo.EndDate or ScheduleInfo.MaxOccurrences ScheduleInfo.DaysBefore (or ScheduleInfo.RemindDays for Reminded RecurType) (ScheduleInfo.DayOfWeek and ScheduleInfo.WeekOfMonth) or ScheduleInfo.DayOfMonth Weekly — The allowed properties for weekly interval type are : ScheduleInfo.NumInterval ScheduleInfo.StartDate ScheduleInfo.EndDate or ScheduleInfo.MaxOccurrence ScheduleInfo.DaysBefore(or ScheduleInfo.RemindDays for Reminded RecurType) ScheduleInfo.DayOfWeek Daily — The allowed properties for daily interval type are : ScheduleInfo.NumInterval ScheduleInfo.StartDate ScheduleInfo.EndDate or ScheduleInfo.MaxOccurrences ScheduleInfo.DaysBefore (or ScheduleInfo.RemindDays for Reminded RecurType)",
            "type": "string"
          },
          "MaxOccurrences": {
            "anyOf": [
              {
                "description": "The max number of recurring occurrences.",
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "MonthOfYear": {
            "description": "The month of the year.",
            "type": "string"
          },
          "NextDate": {
            "description": "The date when the next transaction is created.",
            "readOnly": true,
            "type": "string"
          },
          "NumInterval": {
            "anyOf": [
              {
                "description": "The interval based on the interval type.",
                "type": "string"
              },
              {
                "type": "integer"
              }
            ]
          },
          "PreviousDate": {
            "description": "The date when the last transaction is created.",
            "readOnly": true,
            "type": "string"
          },
          "RemindDays": {
            "description": "The days before start date for a reminded RecurType.",
            "type": "string"
          },
          "StartDate": {
            "description": "The start date for the recurring schedule",
            "type": "string"
          },
          "WeekOfMonth": {
            "description": "The week of the month.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_recurringtransactionrequest": {
        "additionalProperties": true,
        "properties": {
          "RecurringInfo": {
            "$ref": "#/components/schemas/qbo_recurringinfo",
            "description": "Describes the recurring schedules for transactions."
          }
        },
        "required": [
          "RecurringInfo"
        ],
        "type": "object"
      },
      "qbo_recurringtransactionresponse": {
        "additionalProperties": true,
        "properties": {
          "Id": {
            "description": "Unique identifier for this object.",
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the recur template associated with the transaction."
          },
          "RecurringInfo": {
            "$ref": "#/components/schemas/qbo_recurringinfo",
            "description": "Describes the recurring schedules for transactions."
          },
          "SyncToken": {
            "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.",
            "type": "string"
          },
          "Type": {
            "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",
            "type": "string"
          }
        },
        "required": [
          "RecurringInfo"
        ],
        "type": "object"
      },
      "qbo_referencetype": {
        "additionalProperties": true,
        "properties": {
          "name": {
            "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.",
            "type": "string"
          },
          "value": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "maximum": 9007199254740991,
                "minimum": 0,
                "type": "integer"
              }
            ]
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "qbo_refundreceiptrequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "DepositToAccountRef": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/qbo_referencetype"
              },
              {
                "$ref": "#/components/schemas/qbo_currencyref"
              }
            ],
            "description": "Accounts receivable asset account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. CurrencyRefType Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here ."
          },
          "Line": {
            "description": "The minimum line item required for the request is one of the following: SalesItemLine and GroupLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                }
              ]
            },
            "type": "array"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          }
        },
        "required": [
          "DepositToAccountRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_refundreceiptresponse": {
        "additionalProperties": true,
        "properties": {
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
          },
          "CheckPayment": {
            "$ref": "#/components/schemas/qbo_checkpayment",
            "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CreditCardPayment": {
            "$ref": "#/components/schemas/qbo_creditcardpayment",
            "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transaction."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only)",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PaymentRefNum": {
            "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
            "type": "string"
          },
          "PaymentType": {
            "description": "Valid values are Cash , Check , CreditCard , or Other .",
            "type": "string"
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
            "readOnly": true
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxExemptionRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
            "readOnly": true
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "DepositToAccountRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_reimbursechargeline": {
        "additionalProperties": true,
        "properties": {
          "DetailType": {
            "description": "Set this to ReimburseLineDetail.",
            "type": "string"
          },
          "LineId": {
            "description": "The line Id for the line. This will be used to link it to the invoice.",
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer."
          },
          "LinkedTxn": {
            "description": "List of LinkedTxn objects. This will contain the Invoice linked transaction if the ReimburseCharge has been linked to an Invoice.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "ReimburseLineDetail": {
            "$ref": "#/components/schemas/qbo_discountlinedetail",
            "description": "Reimburse charge details for the line."
          }
        },
        "required": [
          "ReimburseLineDetail",
          "DetailType"
        ],
        "type": "object"
      },
      "qbo_reimbursechargeresponse": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "HasBeenInvoiced": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Boolean indicating whether the reimbursable charge has been linked to an Invoice."
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "items": {
              "$ref": "#/components/schemas/qbo_reimbursechargeline"
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "The LinkedTxn will contain the Invoice Id if the ReimburseCharge has been linked with an Invoice.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "Line",
          "Amount",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_reimburselinedetail": {
        "additionalProperties": true,
        "properties": {
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class for the line item. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "ItemAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Available with invoice objects, only, and when there is a linkedtxn of type ReimburseCharge for this object. When ItemRef.Id is set to 1, ItemAccountRef maps to the reimbursable charge account."
          },
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Item. These will not be present for markup lines or Purchase Reimburse Lines"
          },
          "MarkupInfo": {
            "$ref": "#/components/schemas/qbo_markupinfo",
            "description": "Used to define markup when this line represents a billable expense on the invoice. Markup information for the billable expense line."
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          }
        },
        "type": "object"
      },
      "qbo_reportcolumn": {
        "additionalProperties": true,
        "properties": {
          "ColTitle": {
            "description": "The column label. This string appears at the top of the column. If not defined, the column does not have a label. The value of this attribute is localized.",
            "type": "string"
          },
          "ColType": {
            "description": "The type of information found in the column. Possible values include: Account —This column in the row represents an account for the row item. The row further defines the specific account. Money —This column in the row represents an amount for the row item.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_reportcolumns": {
        "additionalProperties": true,
        "properties": {
          "Column": {
            "description": "Container for an individual report column definition.",
            "items": {
              "$ref": "#/components/schemas/qbo_reportcolumn"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_reportheader": {
        "additionalProperties": true,
        "properties": {
          "Class": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Currency": {
            "description": "A string containing the currency code associated with the report.",
            "type": "string"
          },
          "Customer": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Department": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Employee": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "EndPeriod": {
            "description": "The date specified by the end_date query parameter submitted with the request. Format is yyyy-mm-dd .",
            "type": "string"
          },
          "Item": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Option": {
            "items": {
              "$ref": "#/components/schemas/qbo_reportoption",
              "description": "Container for one or more name/value pairs that return additional information about the report contents."
            },
            "type": "array"
          },
          "ReportBasis": {
            "description": "Accounting method. Possible values include Cash and Accrual .",
            "type": "string"
          },
          "ReportName": {
            "description": "Name of the report.",
            "type": "string"
          },
          "StartPeriod": {
            "description": "The date specified by the start_date query parameter submitted with the request. Format is yyyy-mm-dd .",
            "type": "string"
          },
          "SummarizeColumnsBy": {
            "description": "The method by which report columns are organized. This contains the value specified by the summarize_column_by query parameter submitted with the request.",
            "type": "string"
          },
          "Time": {
            "description": "Date and timestamp of the report.",
            "type": "string"
          },
          "Vendor": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_reportoption": {
        "additionalProperties": true,
        "properties": {
          "name": {
            "description": "Supported Names: AccountingStandard —Indicates the accounting standard being used for this report. Returned with ProfitAndLoss and BalanceSheet reports, only. NoReportData —Used to signal whether report contains data. If true , report contains no data. If false , report contains data. Returned for every report type.",
            "type": "string"
          },
          "value": {
            "description": "The value of the parameter, as passed in with the report endpoint URL.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_reportprefs": {
        "additionalProperties": true,
        "properties": {
          "CalcAgingReportFromTxnDate": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Calculation aging from transaction date",
            "readOnly": true
          },
          "ReportBasis": {
            "description": "Accounting method for summary. Possible values include Cash and Accrual .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_reportrow": {
        "additionalProperties": true,
        "properties": {
          "ColData": {
            "items": {
              "additionalProperties": true,
              "description": "Information for each column of a leaf row Row type=Data . There must be a ColData definition for each column defined in the Columns section. Parameters: id —The reference id of the entity as returned in the Id entity field. Returned where applicable. value —The value for column. The type of value is based on the column type. href —The link to the quick zoom data for this cell, available when the report endpoint specifies the qzurl query parameter. The qzurl query parameter is supported on a report by report basis; check the list of query parameters for the specific report to determine support. The value of the parameter is localized.",
              "type": "object"
            },
            "type": "array"
          },
          "Header": {
            "additionalProperties": true,
            "description": "Header row for the report section.",
            "type": "object"
          },
          "Rows": {
            "additionalProperties": true,
            "description": "Container for one or more leaf rows.",
            "type": "object"
          },
          "Summary": {
            "additionalProperties": true,
            "description": "Summary row for a report section. It is the cumulative total amount of money in the account, including the sub accounts.",
            "type": "object"
          }
        },
        "type": "object"
      },
      "qbo_reportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section . Possible values include: Income , COGS , GrossProfit , Expenses , NetOperatingIncome , OtherIncome , OtherExpenses , NetOtherIncome , NetIncome",
            "items": {
              "$ref": "#/components/schemas/qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_reportsqueryall": {
        "additionalProperties": true,
        "properties": {
          "account_status": {
            "description": "The account status. Supported values include: Deleted , Not_Deleted",
            "type": "string"
          },
          "account_type": {
            "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable AccountsReceivable Bank CostOfGoodsSold CreditCard Equity Expense FixedAsset Income LongTermLiability NonPosting OtherAsset OtherCurrentAsset OtherCurrentLiability OtherExpense OtherIncome <Add account types table mapping>",
            "type": "string"
          },
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "aging_method": {
            "description": "The date upon which aging is determined. Supported Values: Report_Date , Current",
            "type": "string"
          },
          "aging_period": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of days in the aging period. Supported Values: A numeric value."
          },
          "appaid": {
            "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
            "type": "string"
          },
          "arpaid": {
            "description": "Supported Values: All , Paid , Unpaid",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: class_name* create_by create_date dept_name* doc_num * last_mod_by last_mod_date memo* name* net_amount pmt_mthd split_acc* tax_amount tax_code tx_date* Without multicurrency enabled subt_nat_amount* rbal_nat_amount* With multicurrency enabled subt_ant_home_amount* rbal_nat_home_amount* Default Set of Columns for Canadian companies: Need to confirm . Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .",
            "type": "string"
          },
          "createdate_macro": {
            "description": "Predefined report account create date range. Use if you want the report to cover a standard create report date range; otherwise, use start_createdate and end_createdate to cover an explicit report date range. Supported Values: TodayYesterday This WeekLast Week This Week-to-dateLast Week-to-date Next WeekNext 4 Weeks This MonthLast Month This Month-to-dateLast Month-to-date Next Month This Fiscal QuarterLast Fiscal Quarter This Fiscal Quarter-to-dateLast Fiscal Quarter-to-date Next Fiscal Quarter This Fiscal YearLast Fiscal Year This Fiscal Year-to-date Last Fiscal Year-to-date Next Fiscal Year",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: TodayYesterday This WeekLast Week This Week-to-dateLast Week-to-date Next WeekNext 4 Weeks This MonthLast Month This Month-to-dateLast Month-to-date Next Month This Fiscal QuarterLast Fiscal Quarter This Fiscal Quarter-to-dateLast Fiscal Quarter-to-date Next Fiscal Quarter This Fiscal YearLast Fiscal Year This Fiscal Year-to-date Last Fiscal Year-to-date Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "duedate_macro": {
            "description": "Predefined date range of due dates for balances to include in the report; otherwise, use the start_duedate and end_duedate to cover an explicit report date range. Supported Values: TodayYesterday This WeekLast Week This Week-to-dateLast Week-to-date Next WeekNext 4 Weeks This MonthLast Month This Month-to-dateLast Month-to-date Next Month This Fiscal QuarterLast Fiscal Quarter This Fiscal Quarter-to-dateLast Fiscal Quarter-to-date Next Fiscal Quarter This Fiscal YearLast Fiscal Year This Fiscal Year-to-date Last Fiscal Year-to-date Next Fiscal Year",
            "type": "string"
          },
          "employee": {
            "description": "Filters report contents to include information for specified employees. Supported Values: One or more comma separated account IDs as returned in the attribute, Employee.Id , of the Employee entity response code.",
            "type": "string"
          },
          "item<": {
            "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
            "type": "string"
          },
          "moddate_macro": {
            "description": "Predefined report account modification date range. Use if you want the report to cover a standard report date range when accounts were modified; otherwise, use the start_moddate and end_moddate to cover an explicit report date range. Supported Values: TodayYesterday This WeekLast Week This Week-to-dateLast Week-to-date Next WeekNext 4 Weeks This MonthLast Month This Month-to-dateLast Month-to-date Next Month This Fiscal QuarterLast Fiscal Quarter This Fiscal Quarter-to-dateLast Fiscal Quarter-to-date Next Fiscal Quarter This Fiscal YearLast Fiscal Year This Fiscal Year-to-date Last Fiscal Year-to-date Next Fiscal Year (Account List Detail)",
            "type": "string"
          },
          "num_periods": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "The number of periods to be shown in the report. Supported Values: A numeric value."
          },
          "past_due": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Filters report contents based on minimum days past due. Supported Values: Integer number of days. No filtering"
          },
          "payment_method": {
            "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "shipvia": {
            "description": "Filter by the shipping method as stored in Invoice.ShipMethodRef.Name . Supported Values: Any shipping method as sent in the Invoice.ShipMethodRef.Name attribute at Invoice create- or update-time.",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_createdate end_createdate": {
            "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range. If not specified value of createdate_macro is used.",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total Month Week Days Quarter Year Customers Vendors Classes Departments Employees ProductsAndServices",
            "type": "string"
          },
          "term": {
            "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_reporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/qbo_reportrows",
            "description": "Top level container holding information for report rows."
          }
        },
        "type": "object"
      },
      "qbo_salesformspref": {
        "additionalProperties": true,
        "properties": {
          "AllowDeposit": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables specifying Deposit."
          },
          "AllowDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables specifying Discount."
          },
          "AllowEstimates": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables specifying Estimates."
          },
          "AllowServiceDate": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables specifying service date."
          },
          "AllowShipping": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables specifying shipping info."
          },
          "AutoApplyCredit": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Automatically applies credits to the next invoice you create for the same customer. Most companies turn on this setting.",
            "readOnly": true
          },
          "CustomField": {
            "items": {
              "additionalProperties": true,
              "properties": {
                "CustomField": {
                  "items": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/qbo_customfieldboolsales"
                      },
                      {
                        "$ref": "#/components/schemas/qbo_customfieldstringsales"
                      }
                    ]
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "CustomTxnNumbers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables the ability to specify custom transaction numbers for sales transactions."
          },
          "DefaultCustomerMessage": {
            "description": "Default customer message.",
            "type": "string"
          },
          "DefaultDiscountAccount": {
            "type": "string"
          },
          "DefaultShippingAccount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Default shipping account."
          },
          "DefaultTerms": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Default sales terms."
          },
          "ETransactionAttachPDF": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Specifies whether sales form PDF should be attached with ETransaction mails."
          },
          "ETransactionEnabledStatus": {
            "description": "Enables ETransaction status.",
            "readOnly": true,
            "type": "string"
          },
          "ETransactionPaymentEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables ETransaction payment."
          },
          "EmailCopyToCompany": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If set to true, the QuickBooks company is cc'ed on all email sent to customers for sales transactions. Email used is that defined with CompanyInfo.Email.Address ."
          },
          "EstimateMessage": {
            "description": "Message to the customers on estimates.",
            "readOnly": true,
            "type": "string"
          },
          "IPNSupportEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "IPN support enabled. No longer used and is being deprecated.",
            "readOnly": true
          },
          "SalesEmailBcc": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Default blind carbon copy email address where invoices are sent. Override this setting with the Invoice.BillEmailBcc attribute. Max 200 characters. Ignored if address is invalid."
          },
          "SalesEmailCc": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Default carbon copy email address where invoices are sent. Override this setting with the Invoice.BillEmailCc attribute. Max 200 characters. Ignored if address is invalid."
          },
          "UsingPriceLevels": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If set to true, price levels are enabled for sales transactions. Full price level support available via QuickBooks UI, only, in April 2017.",
            "readOnly": true
          },
          "UsingProgressInvoicing": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables Progress Invoicing",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "qbo_salesitemline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item. For Invoice objects in global locales: when updating Amount , remove the TxnTaxDetail element in the object before submitting it in the update request payload."
          },
          "CustomExtensions": {
            "$ref": "#/components/schemas/qbo_customextensions",
            "description": "Array of custom extension objects that associate additional attributes with the line. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to SalesItemLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "SalesItemLineDetail": {
            "$ref": "#/components/schemas/qbo_salesitemlinedetail"
          }
        },
        "required": [
          "DetailType",
          "SalesItemLineDetail",
          "Amount"
        ],
        "type": "object"
      },
      "qbo_salesitemlinedetail": {
        "additionalProperties": true,
        "properties": {
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class for the line item. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "ItemAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Available with invoice objects, only, and when there is a linkedtxn of type ReimburseCharge for this object. When ItemRef.Id is set to 1, ItemAccountRef maps to the reimbursable charge account."
          },
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to an Item object. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. Set ItemRef.value to SHIPPING_ITEM_ID when Line.amount represents transaction-wide shipping charges. Valid when Preferences.SalesFormsPrefs.AllowShipping is set to true . Set ItemRef.value to GRATUITY_ITEM_ID when Line.amount represents transaction-wide gratuity amount. Valid when Preferences.OtherPrefs.Name.SalesFormsPrefs.AllowGratuity is set to true . When a line lacks an ItemRef it is treated as documentation and the Line.Amount attribute is ignored. Applicable to invoice objects, only, and when linktxn specifies a ReimburseCharge . When Item.Id is set to 1, ItemAccountRef refers to reimburse expense account Id."
          },
          "MarkupInfo": {
            "$ref": "#/components/schemas/qbo_markupinfo",
            "description": "Used to define markup when this line represents a billable expense on the invoice. Markup information for the billable expense line."
          },
          "Qty": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Number of items for the line."
          },
          "ServiceDate": {
            "description": "Date when the service is performed.",
            "type": "string"
          },
          "TaxClassificationRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxClassification for this item. Available for companies that have automated sales tax enabled. TaxClassificationRef.Name : Currently not populated. TaxClassificationRef.value : The system-defined Tax Classification code that is applied to this line item. For internal use only.",
            "readOnly": true
          },
          "TaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the TaxCode for this item. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively."
          },
          "TaxInclusiveAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The total amount of the line item including tax."
          },
          "UnitPrice": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Unit price of the subject item as referenced by ItemRef . Corresponds to the Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. You can override the unit price of the subject item by supplying a new value with create or update operations. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
          }
        },
        "type": "object"
      },
      "qbo_salesreceiptrequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "Line": {
            "description": "The minimum line item required for the request is one of the following: SalesItemLine and GroupLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                }
              ]
            },
            "type": "array"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          }
        },
        "required": [
          "Line"
        ],
        "type": "object"
      },
      "qbo_salesreceiptresponse": {
        "additionalProperties": true,
        "properties": {
          "ApplyTaxAfterDiscount": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillEmail": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CreditCardPayment": {
            "$ref": "#/components/schemas/qbo_creditcardpayment",
            "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "CustomField": {
            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
            "items": {
              "$ref": "#/components/schemas/qbo_customfield"
            },
            "type": "array"
          },
          "CustomerMemo": {
            "$ref": "#/components/schemas/qbo_memoref",
            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "DeliveryInfo": {
            "$ref": "#/components/schemas/qbo_deliveryinfo",
            "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
            "readOnly": true
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DepositToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
            "type": "string"
          },
          "EmailStatus": {
            "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "FreeFormAddress": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "HomeBalance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
            "readOnly": true
          },
          "HomeTotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_salesitemline"
                },
                {
                  "$ref": "#/components/schemas/qbo_groupline"
                },
                {
                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                },
                {
                  "$ref": "#/components/schemas/qbo_discountline"
                },
                {
                  "$ref": "#/components/schemas/qbo_subtotalline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
          },
          "PaymentRefNum": {
            "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
            "type": "string"
          },
          "PrintStatus": {
            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
            "type": "string"
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
            "readOnly": true
          },
          "ShipAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipDate": {
            "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
            "type": "string"
          },
          "ShipFromAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "ShipMethodRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
            "readOnly": true
          },
          "TrackingNum": {
            "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
            "type": "string"
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "TxnSource": {
            "description": "Used internally to specify originating source of a credit card transaction.",
            "type": "string"
          },
          "TxnTaxDetail": {
            "$ref": "#/components/schemas/qbo_txntaxdetail",
            "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
          }
        },
        "required": [
          "Line",
          "CustomerRef"
        ],
        "type": "object"
      },
      "qbo_servicetypeenum": {
        "additionalProperties": true,
        "properties": {},
        "type": "object"
      },
      "qbo_subtotalline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the line item."
          },
          "Description": {
            "description": "Free form text description of the line item that appears in the printed record.",
            "type": "string"
          },
          "DetailType": {
            "description": "Set to SubTotalLineDetail for this type of line.",
            "type": "string"
          },
          "Id": {
            "description": "The Id of the line item. Its use in requests is as folllows: If Id is greater than zero and exists for the company, the request is considered an update operation for a line item. If no Id is provided, the Id provided is less than or equal to zero, or the Id provided is greater than zero and does not exist for the company then the request is considered a create operation for a line item. Available in all objects that use lines and support the update operation.",
            "readOnly": true,
            "type": "string"
          },
          "LineNum": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the position of the line in the collection of transaction lines. Positive integer"
          },
          "SubTotalLineDetail": {
            "$ref": "#/components/schemas/qbo_subtotallinedetail",
            "description": "Subtotal LineDetail"
          }
        },
        "required": [
          "SubTotalLineDetail",
          "DetailType",
          "Amount"
        ],
        "type": "object"
      },
      "qbo_subtotallinedetail": {
        "additionalProperties": true,
        "properties": {
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Item. Query the Item name list resource to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. When a line lacks an ItemRef it is treated as documentation and the Line.Amount attribute is ignored. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          }
        },
        "type": "object"
      },
      "qbo_taxagencyrequest": {
        "additionalProperties": true,
        "properties": {
          "DisplayName": {
            "description": "Name of the agency.",
            "type": "string"
          }
        },
        "required": [
          "DisplayName"
        ],
        "type": "object"
      },
      "qbo_taxagencyresponse": {
        "additionalProperties": true,
        "properties": {
          "DisplayName": {
            "description": "Name of the agency.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "LastFileDate": {
            "description": "The last tax filing date for this tax agency. This field is automatically populated by QuickBooks business logic at tax filing time.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxAgencyConfig": {
            "description": "Flag to identify whether the TaxAgency is system defined by Automated Sales Tax engine or user generated. Valid values include USER_DEFINED , SYSTEM_GENERATED SYSTEM_GENERATED.",
            "readOnly": true,
            "type": "string"
          },
          "TaxRegistrationNumber": {
            "description": "Registration number for the agency.",
            "readOnly": true,
            "type": "string"
          },
          "TaxTrackedOnPurchases": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Denotes whether this tax agency is used to track tax on purchases.",
            "readOnly": true
          },
          "TaxTrackedOnSales": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Denotes whether this tax agency is used to track tax on sales.",
            "readOnly": true
          }
        },
        "required": [
          "DisplayName"
        ],
        "type": "object"
      },
      "qbo_taxclassification": {
        "additionalProperties": true,
        "properties": {
          "ApplicableTo": {
            "description": "List of item types the tax classification is applicable to. Includes Inventory, NonInventory, Bundle and Service.",
            "type": "string"
          },
          "Code": {
            "description": "Code",
            "type": "string"
          },
          "Description": {
            "description": "Description of the tax classification",
            "type": "string"
          },
          "Level": {
            "description": "Tax classification level (Numeric value 1, or 2. 1 specifies parent tax classification)",
            "readOnly": true,
            "type": "string"
          },
          "Name": {
            "description": "Name of the tax classification",
            "type": "string"
          },
          "ParentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference Type for parent"
          }
        },
        "required": [
          "ParentRef"
        ],
        "type": "object"
      },
      "qbo_taxcoderesponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "False if inactive. Inactive sales tax codes may be hidden from display and may not be used on financial transactions."
          },
          "Description": {
            "description": "User entered description for the sales tax code.",
            "type": "string"
          },
          "Hidden": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Read-only. Denotes whether active tax codes are displayed on transactions. true —-This tax code is hidden on transactions. false —-This tax code is displayed on transactions.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the tax sales code.",
            "type": "string"
          },
          "PurchaseTaxRateList": {
            "$ref": "#/components/schemas/qbo_taxratelist",
            "description": "List of references to tax rates that apply for purchase transactions when this tax code represents a group of tax rates. Required when TaxGroup is set to true"
          },
          "SalesTaxRateList": {
            "$ref": "#/components/schemas/qbo_taxratelist",
            "description": "List of references to tax rates that apply for sales transactions when this tax code represents a group of tax rates. Required when TaxGroup is set to true"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxCodeConfigType": {
            "description": "Flag to identify whether the TaxCode is system defined by Automated Sales Tax engine or user generated. Valid values include USER_DEFINED , SYSTEM_GENERATED SYSTEM_GENERATED.",
            "readOnly": true,
            "type": "string"
          },
          "TaxGroup": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "true —-this object represents a group of one or more tax rates. false —-this object represents pseudo-tax codes TAX and NON.",
            "readOnly": true
          },
          "Taxable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "False or null means meaning non-taxable. True means taxable. Always true, except for the pseudo taxcode NON.",
            "readOnly": true
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_taxline": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of tax for this tax line. This value is negative for JournalEntry objects with PostingType set to Credit."
          },
          "DetailType": {
            "description": "Set to TaxLineDetail for this type of line.",
            "type": "string"
          },
          "TaxLineDetail": {
            "$ref": "#/components/schemas/qbo_taxlinedetail",
            "description": "TaxLineDetail"
          }
        },
        "required": [
          "DetailType",
          "TaxLineDetail"
        ],
        "type": "object"
      },
      "qbo_taxlinedetail": {
        "additionalProperties": true,
        "properties": {
          "NetAmountTaxable": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "This is the taxable amount on the total of the applicable tax rates. If TaxRate is applicable on two lines, this attribute represents the total of the two lines for which this rate is applied. This is different from the Line.Amount , which represents the final tax amount after the tax has been applied. Default Value: Null"
          },
          "OverrideDeltaAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The difference between the actual tax and the overridden amount supplied by the user."
          },
          "PercentBased": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "True —sales tax rate is expressed as a percentage. False —sales tax rate is expressed as a number amount."
          },
          "TaxInclusiveAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "This is the total amount, including tax."
          },
          "TaxPercent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Numerical expression of the sales tax percent. For example, use \"8.5\" not \"0.085\"."
          },
          "TaxRateRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a TaxRate to apply to the entire transaction. Query the TaxRate name list resource to determine the appropriate TaxRage object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name , respectively. For non-US versions of QuickBooks, the TaxRate referenced here must also be one of the rates in the referenced tax code's rate list—either the SalesTaxRateList or the PurchaseTaxRateList—as applies to the transaction type. Any given rate may only be listed once."
          }
        },
        "required": [
          "TaxRateRef"
        ],
        "type": "object"
      },
      "qbo_taxpaymentresponse": {
        "additionalProperties": true,
        "properties": {
          "Description": {
            "description": "Specifies the Memo/Description added for this payment.",
            "readOnly": true,
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PaymentAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Indicates the Account ID from which the payment was made (or refund was moved to).",
            "readOnly": true
          },
          "PaymentAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the tax payment amount paid towards a filed tax return.",
            "readOnly": true
          },
          "Refund": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicate if this transaction is a refund. Returns false for the payment."
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TxnDate": {
            "description": "Indicates the tax payment date",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_taxprefs": {
        "additionalProperties": true,
        "properties": {
          "PartnerTaxEnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Partner tax refers to the automated sales tax engine that provides sales tax compliance. All QuickBooks Online companies created after November 10, 2017 are enabled by default. If true , automated sales tax is enabled for the company and sales tax is set up ( UsingSalesTax is set to true ). If false , automated sales tax is enabled for the company but the company doesn't have sales tax set up ( UsingSalesTax is set to false ). If not present in response payload, the company is not enabled for automated sales tax.",
            "readOnly": true
          },
          "TaxGroupCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype"
          },
          "UsingSalesTax": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Sales tax enabled",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "qbo_taxratedetail": {
        "additionalProperties": true,
        "properties": {
          "TaxOrder": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Applicable Tax Order."
          },
          "TaxRateRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the tax rate."
          },
          "TaxTypeApplicable": {
            "description": "Applicable TaxType enum. Valid values: TaxOnAmount, TaxOnAmountPlusTax, TaxOnTax",
            "type": "string"
          }
        },
        "required": [
          "TaxRateRef"
        ],
        "type": "object"
      },
      "qbo_taxratedetails": {
        "additionalProperties": true,
        "anyOf": [
          {
            "required": [
              "TaxRateId"
            ]
          },
          {
            "required": [
              "TaxRateName",
              "RateValue",
              "TaxAgencyId"
            ]
          }
        ],
        "properties": {
          "RateValue": {
            "description": "Required if: TaxRateId not present. The rate value. Must be between 0 and 100 (%). For create requests: do not include if TaxRateId has been specified.",
            "type": "string"
          },
          "TaxAgencyId": {
            "description": "The Id of the agency to whom tax is paid. Query the TaxAgency resource to determine the ID for the desired agency. For create requests: do not include if TaxRateId has been specified. Required if TaxRateId not present.",
            "type": "string"
          },
          "TaxApplicableOn": {
            "description": "Specifies where this tax rate can be applied. Possible values are Sales or Purchase .",
            "type": "string"
          },
          "TaxRateId": {
            "description": "Required if: TaxRateName , RateValue , and TaxAgencyId not present. The Id of an existing TaxRate. Query the TaxRate endpoint to determine the ID used for TaxRateId .",
            "type": "string"
          },
          "TaxRateName": {
            "description": "Required if TaxRateId not present. Name of a new tax rate. In Create requests: ignored if TaxRateId is present.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_taxratelist": {
        "additionalProperties": true,
        "properties": {
          "TaxRateDetail": {
            "description": "TaxRateDetail that specifies qualified detail of TaxRate.",
            "items": {
              "$ref": "#/components/schemas/qbo_taxratedetail"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_taxrateresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this object is currently enabled for use by QuickBooks.",
            "readOnly": true
          },
          "AgencyRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the tax agency associated with this object.",
            "readOnly": true
          },
          "Description": {
            "description": "User entered description for the tax rate.",
            "readOnly": true,
            "type": "string"
          },
          "DisplayType": {
            "description": "TaxRate DisplayType enum which acts as display config.",
            "readOnly": true,
            "type": "string"
          },
          "EffectiveTaxRate": {
            "$ref": "#/components/schemas/qbo_effectivetaxratedata",
            "description": "List of EffectiveTaxRate. An EffectiveTaxRate is used to know which taxrate is applicable on any date.",
            "readOnly": true
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the tax rate.",
            "readOnly": true,
            "type": "string"
          },
          "OriginalTaxRate": {
            "description": "ID of the original tax rate from which the new tax rate is derived. Helps to understand the relationship between corresponding tax rate entities.",
            "readOnly": true,
            "type": "string"
          },
          "RateValue": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Value of the tax rate.",
            "readOnly": true
          },
          "SpecialTaxType": {
            "description": "Special tax type to handle zero rate taxes. Used with VAT registered Businesses who receive goods/services (acquisitions) from other EU countries, will need to calculate the VAT due, but not paid, on these acquisitions. The rate of VAT payable is the same that would have been paid if the goods had been supplied by a UK supplier.",
            "readOnly": true,
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TaxReturnLineRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the tax return line associated with this object.",
            "readOnly": true
          }
        },
        "type": "object"
      },
      "qbo_taxservicerequest": {
        "additionalProperties": true,
        "properties": {
          "TaxCode": {
            "description": "Name of new tax code. To query list of currently defined tax codes, use the TaxCode endpoint.",
            "type": "string"
          },
          "TaxRateDetails": {
            "description": "Container to hold one or more tax rate specifications.",
            "items": {
              "$ref": "#/components/schemas/qbo_taxratedetails"
            },
            "type": "array"
          }
        },
        "required": [
          "TaxCode",
          "TaxRateDetails"
        ],
        "type": "object"
      },
      "qbo_taxserviceresponse": {
        "additionalProperties": true,
        "properties": {
          "TaxCode": {
            "description": "Name of new tax code. For current TaxCodes, query the TaxCode resource.",
            "type": "string"
          },
          "TaxCodeId": {
            "description": "The id of the newly created tax code. This is generated by Data Services and returned in the response code.",
            "readOnly": true,
            "type": "string"
          },
          "TaxRateDetails": {
            "description": "Container to hold one or more tax rate specifications.",
            "items": {
              "$ref": "#/components/schemas/qbo_taxratedetails"
            },
            "type": "array"
          }
        },
        "required": [
          "TaxCode",
          "TaxRateDetails"
        ],
        "type": "object"
      },
      "qbo_taxsummaryquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "agency_id": {
            "description": "The ID of the Tax Agency for which to generate the report. Read the TaxAgency object to get all valid values for this field.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          }
        },
        "required": [
          "agency_id"
        ],
        "type": "object"
      },
      "qbo_telephonenumber": {
        "additionalProperties": true,
        "properties": {
          "FreeFormNumber": {
            "description": "Specifies the telephone number in free form.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_telephonenumber30": {
        "additionalProperties": true,
        "properties": {
          "FreeFormNumber": {
            "description": "Specifies the telephone number in free form.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_termrequest": {
        "additionalProperties": true,
        "properties": {
          "DayOfMonthDue": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Payment must be received by this day of the month. Required if DueDays not present"
          },
          "DueDays": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Number of days from delivery of goods or services until the payment is due. Required if DayOfMonthDue not present"
          },
          "Name": {
            "description": "User recognizable name for the term. For example, Net 30 .",
            "type": "string"
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_termresponse": {
        "additionalProperties": true,
        "properties": {
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this entity is currently enabled for use by QuickBooks."
          },
          "DayOfMonthDue": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Payment must be received by this day of the month. Used only if DueDays is not specified. Required if DueDays not present"
          },
          "DiscountDayOfMonth": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Discount applies if paid before this day of month. Required if DueDays not present",
            "minimum": 1
          },
          "DiscountDays": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Discount applies if paid within this number of days. Used only when DueDays is specified."
          },
          "DiscountPercent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Discount percentage available against an amount if paid within the days specified by DiscountDays ."
          },
          "DueDays": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Number of days from delivery of goods or services until the payment is due. Required if DayOfMonthDue not present"
          },
          "DueNextMonthDays": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Payment due next month if issued that many days before the DayOfMonthDue . Required if DueDays not present.",
            "minimum": 1
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Name": {
            "description": "User recognizable name for the term. For example, Net 30 .",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Type": {
            "description": "Type of the Sales Term. Valid values: STANDARD --Used if DueDays is not null. DATE_DRIVEN --Used if DueDays is null.",
            "type": "string"
          }
        },
        "required": [
          "Name"
        ],
        "type": "object"
      },
      "qbo_threshold": {
        "additionalProperties": true,
        "properties": {
          "aboveThreshold": {
            "description": "Indicate whether the current count of the attribute has reached its limit.",
            "type": "string"
          },
          "currentCount": {
            "description": "Indicates current value of attribute.",
            "type": "string"
          },
          "enforced": {
            "description": "Whether the threshold is enforced.",
            "type": "string"
          },
          "limit": {
            "description": "The upper limit for the threshold.",
            "type": "string"
          },
          "name": {
            "description": "The name of the threshold.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_timeactivityrequest": {
        "additionalProperties": true,
        "properties": {
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
          },
          "EmployeeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies the employee whose time is being recorded. Query the Employee name list resource to determine the appropriate Employee object for this reference. Use Employee.Id and Employee.DisplayName from that object for EmployeerRef.value and EmployeeRef.Name , respectively."
          },
          "EndTime": {
            "description": "Time that work ends. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation. If TnxDate is provided then consider passing the StartTime and EndTime wihtout including the timeZone offset, then the the date passed on the TxnDate is used. If TnxDate is NOT provided, passing the StartTime and EndTime with/wihtout including the timeZone offset, then the the current date on the server is used. For any transactions with historical/future dates kindly include TxnDate in YYYY-MM-DD format and StartTime and EndTime in Hours and Minutes",
            "type": "string"
          },
          "HourlyRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Hourly bill rate of the employee or vendor for this time activity. Required if BillableStatus is set to Billable"
          },
          "Hours": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
          },
          "NameOf": {
            "description": "Enumeration of time activity types. Required in conjunction with either EmployeeRef or VendorRef attributes for create operations. Valid values: Vendor or Employee .",
            "type": "string"
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "StartTime": {
            "description": "Time that work starts. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation. If TnxDate is provided then consider passing the StartTime and EndTime wihtout including the timeZone offset, then the the date passed on the TxnDate is used. If TnxDate is NOT provided, passing the StartTime and EndTime with/wihtout including the timeZone offset, then the the current date on the server is used. For any transactions with historical/future dates kindly include TxnDate in YYYY-MM-DD format and StartTime and EndTime in Hours and Minutes",
            "type": "string"
          },
          "TxnDate": {
            "description": "The date for the time activity. This is the posting date that affects financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default. If you provide the StartTime and EndTime without including the timeZone offset, then you would need to pass the TxnDate for any historical or future dates. Lets say if you want to create a historical time activity then pass the TxnDate as the date and pass StartTime and EndTime as Hours without including the timeZone offset.",
            "type": "string"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies the vendor whose time is being recorded. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "required": [
          "NameOf"
        ],
        "type": "object"
      },
      "qbo_timeactivityresponse": {
        "additionalProperties": true,
        "properties": {
          "BillableStatus": {
            "description": "Billable status of the time recorded. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled . You cannot directly update the status to HasBeenBilled . To set the status to HasBeenBilled , create an Invoice object and attach this TimeActivity object as a linked transaction to that Invoice.",
            "readOnly": true,
            "type": "string"
          },
          "BreakHours": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
          },
          "BreakMinutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
          },
          "ClassRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Class associated with this object. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
          },
          "CostRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Pay rate of the employee or vendor for this time activity."
          },
          "CustomerRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively. Required if BillableStatus is set to Billable"
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of this object. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "Description": {
            "description": "Description of work completed during time activity.",
            "type": "string"
          },
          "EmployeeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies the employee whose time is being recorded. Query the Employee name list resource to determine the appropriate Employee object for this reference. Use Employee.Id and Employee.DisplayName from that object for EmployeerRef.value and EmployeeRef.Name , respectively. Required if NameOf is set to Employee"
          },
          "EndTime": {
            "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
            "type": "string"
          },
          "HourlyRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Hourly bill rate of the employee or vendor for this time activity. Required if BillableStatus is set to Billable"
          },
          "Hours": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "ItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the service item associated with this object. Query the Item name list resource, where Item.Type is set to Service , to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "Minutes": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "pattern": "^-?[0-9]+$",
                "type": "string"
              }
            ],
            "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
          },
          "NameOf": {
            "description": "Enumeration of time activity types. Required in conjunction with either EmployeeRef or VendorRef attributes for create operations. Valid values: Vendor or Employee .",
            "type": "string"
          },
          "PayrollItemRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies how much the employee should be paid for doing the work specified by the Compensation Id. Query the EmployeeCompensation resource to determine the appropriate PayrollCompensation object for an employee. Use EmployeeCompensation.Id and EmployerCompensation.Name from that object for PayrollItemRef.value and PayrollItemRef.name , respectively. This field is available as part of the Payroll Compensation resource in the Workforce API. Read more about the Payroll Compensation resource , available to Silver, Gold, and Platinum partners."
          },
          "ProjectRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the Project ID associated with this transaction."
          },
          "StartTime": {
            "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "Taxable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "True if the time recorded is both billable and taxable."
          },
          "TxnDate": {
            "description": "The date for the time activity. This is the posting date that affects financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default. If you provide the StartTime and EndTime without including the timeZone offset, then you would need to pass the TxnDate for any historical or future dates. Lets say if you want to create a historical time activity then pass the TxnDate as the date and pass StartTime and EndTime as Hours without including the timeZone offset.",
            "type": "string"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies the vendor whose time is being recorded. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively. Required if NameOf is set to Vendor"
          }
        },
        "required": [
          "NameOf"
        ],
        "type": "object"
      },
      "qbo_timetrackingprefs": {
        "additionalProperties": true,
        "properties": {
          "BillCustomers": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables billing customers for time."
          },
          "MarkTimeEntriesBillable": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Mark time entries as billable.",
            "readOnly": true
          },
          "ShowBillRateToAll": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Billing rate to all employees enabled."
          },
          "UsingSalesTax": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Services for time tracking enabled."
          },
          "WorkWeekStartDate": {
            "description": "Work week starting day.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_transactionlistbycustomerquery": {
        "additionalProperties": true,
        "properties": {
          "appaid": {
            "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
            "type": "string"
          },
          "arpaid": {
            "description": "Supported Values: All , Paid , Unpaid",
            "type": "string"
          },
          "bothamount": {
            "description": "Filters report contents to include information for specified transaction amount. For example, bothamount=1233.45 limits report contents to transactions of amount 1233.45.",
            "type": "string"
          },
          "cleared": {
            "description": "Filters report contents to include information for specified check status. Supported Values: Cleared : The transaction has been processed by a bank or credit card account and is reflected in the bank balance. Uncleared : A financial entry that has not been reconciled or matched with the corresponding bank statement records. Reconciled : The transaction has been compared to original records and verified as correct. Deposited : A deposit was made into a bank account, such as a checking account.",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: account_name*, create_by, create_date, cust_msg, due_date, doc_num*, inv_date, is_ap_paid, is_cleared, is_no_post*, last_mod_by, memo*, name*, other_account*, pmt_mthd, printed, sales_cust1, sales_cust2, sales_cust3, term_name, tracking_num, tx_date*, txn_type*, term_name, last_mod_date, ship_via, olb_status, is_ar_paid, extra_doc_num, cust_name Additional columns when location tracking enabled: dept_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .",
            "type": "string"
          },
          "createdate_macro": {
            "description": "Predefined report account create date range. Use if you want the report to cover a standard create report date range; otherwise, use start_createdate and end_createdate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year, This Calendar Quarter, This Calendar Quarter-to-date, Last Calendar Quarter, Last Calendar Quarter-to-date, Next Calendar Quarter, This Calendar Year, This Calendar Year-to-date, Last Calendar Year, Last Calendar Year-to-date, Next Calendar Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "docnum": {
            "description": "Filters report contents to include information for specified transaction number, as found in the docnum parameter of the transaction object.",
            "type": "string"
          },
          "duedate_macro": {
            "description": "Predefined date range of due dates for balances to include in the report; otherwise, use the start_duedate and end_duedate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_createdate": {
            "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "end_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "end_moddate": {
            "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
            "type": "string"
          },
          "group_by": {
            "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type, Customer, Vendor, Employee, Location, Payment Method, Day, Week, Month, Quarter, Year, Fiscal Year, Fiscal Quarter, None",
            "type": "string"
          },
          "memo": {
            "description": "Filters report contents to include information for specified memo. Supported Values: One or more comma separated memo IDs.",
            "type": "string"
          },
          "moddate_macro": {
            "description": "Predefined report account modification date range. Use if you want the report to cover a standard report date range when accounts were modified; otherwise, use the start_moddate and end_moddate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "name": {
            "description": "Filters report contents based on the specified comma separated list of ids for the name list customer, vendor, or employee objects. Query the Customer, Vendor, or Employee name list resource to determine the list of objects for this reference. Specify values found in Customer.Id , Vendor.Id , and Employee.Id . For example, name=1,4,7 includes data in the report for namelist ids 1, 4, and 7. vendor and employee objects",
            "type": "string"
          },
          "payment_method": {
            "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa , Credit Card",
            "type": "string"
          },
          "printed": {
            "description": "Filters report contents based on whether checks are printed or not. Supported Values: Printed , To_be_printed",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "source_account_type": {
            "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
            "type": "string"
          },
          "start_createdate": {
            "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "start_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "start_moddate": {
            "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
            "type": "string"
          },
          "term": {
            "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
            "type": "string"
          },
          "transaction_type": {
            "description": "Filters report contents based transaction type. Supported values include: CreditCardCharge, Check, Invoice, ReceivePayment, JournalEntry, Bill, CreditCardCredit, VendorCredit, Credit, BillPaymentCheck, BillPaymentCreditCard, Charge, Transfer, Deposit, Statement, BillableCharge, TimeActivity, CashPurchase, SalesReceipt, CreditMemo, CreditRefund, Estimate, InventoryQuantityAdjustment, PurchaseOrder, GlobalTaxPayment, GlobalTaxAdjustment, Service Tax Refund, Service Tax Gross Adjustment, Service Tax Reversal, Service Tax Defer, Service Tax Partial Utilisation",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_transactionlistbyvendorquery": {
        "additionalProperties": true,
        "properties": {
          "appaid": {
            "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
            "type": "string"
          },
          "arpaid": {
            "description": "Supported Values: All , Paid , Unpaid",
            "type": "string"
          },
          "bothamount": {
            "description": "Filters report contents to include information for specified transaction amount. For example, bothamount=1233.45 limits report contents to transactions of amount 1233.45.",
            "type": "string"
          },
          "cleared": {
            "description": "Filters report contents to include information for specified check status. Supported Values: Cleared : The transaction has been processed by a bank or credit card account and is reflected in the bank balance. Uncleared : A financial entry that has not been reconciled or matched with the corresponding bank statement records. Reconciled : The transaction has been compared to original records and verified as correct. Deposited : A deposit was made into a bank account, such as a checking account.",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: account_name*, create_by, create_date, cust_msg, due_date, doc_num*, inv_date, is_ap_paid, is_cleared, is_no_post*, last_mod_by, memo*, name*, other_account*, pmt_mthd, printed, sales_cust1, sales_cust2, sales_cust3, term_name, tracking_num, tx_date*, txn_type*, term_name, last_mod_date, po_status, ship_via, olb_status, vendor_name Additional columns when location tracking enabled: dept_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .",
            "type": "string"
          },
          "createdate_macro": {
            "description": "Predefined report account create date range. Use if you want the report to cover a standard create report date range; otherwise, use start_createdate and end_createdate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year, This Calendar Quarter, This Calendar Quarter-to-date, Last Calendar Quarter, Last Calendar Quarter-to-date, Next Calendar Quarter, This Calendar Year, This Calendar Year-to-date, Last Calendar Year, Last Calendar Year-to-date, Next Calendar Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "docnum": {
            "description": "Filters report contents to include information for specified transaction number, as found in the docnum parameter of the transaction object.",
            "type": "string"
          },
          "duedate_macro": {
            "description": "Predefined date range of due dates for balances to include in the report; otherwise, use the start_duedate and end_duedate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_createdate": {
            "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "end_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "end_moddate": {
            "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
            "type": "string"
          },
          "group_by": {
            "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type, Customer, Vendor, Employee, Location, Payment Method, Day, Week, Month, Quarter, Year, Fiscal Year, Fiscal Quarter, None",
            "type": "string"
          },
          "memo": {
            "description": "Filters report contents to include information for specified memo. Supported Values: One or more comma separated memo IDs.",
            "type": "string"
          },
          "moddate_macro": {
            "description": "Predefined report account modification date range. Use if you want the report to cover a standard report date range when accounts were modified; otherwise, use the start_moddate and end_moddate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "name": {
            "description": "Filters report contents based on the specified comma separated list of ids for the name list customer, vendor, or employee objects. Query the Customer, Vendor, or Employee name list resource to determine the list of objects for this reference. Specify values found in Customer.Id , Vendor.Id , and Employee.Id . For example, name=1,4,7 includes data in the report for namelist ids 1, 4, and 7. vendor and employee objects",
            "type": "string"
          },
          "payment_method": {
            "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa , Credit Card",
            "type": "string"
          },
          "printed": {
            "description": "Filters report contents based on whether checks are printed or not. Supported Values: Printed , To_be_printed",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "source_account_type": {
            "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
            "type": "string"
          },
          "start_createdate": {
            "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "start_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "start_moddate": {
            "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
            "type": "string"
          },
          "term": {
            "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
            "type": "string"
          },
          "transaction_type": {
            "description": "Filters report contents based transaction type. Supported values include: CreditCardCharge, Check, Invoice, ReceivePayment, JournalEntry, Bill, CreditCardCredit, VendorCredit, Credit, BillPaymentCheck, BillPaymentCreditCard, Charge, Transfer, Deposit, Statement, BillableCharge, TimeActivity, CashPurchase, SalesReceipt, CreditMemo, CreditRefund, Estimate, InventoryQuantityAdjustment, PurchaseOrder, GlobalTaxPayment, GlobalTaxAdjustment, Service Tax Refund, Service Tax Gross Adjustment, Service Tax Reversal, Service Tax Defer, Service Tax Partial Utilisation",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_transactionlistquery": {
        "additionalProperties": true,
        "properties": {
          "appaid": {
            "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
            "type": "string"
          },
          "arpaid": {
            "description": "Supported Values: All , Paid , Unpaid",
            "type": "string"
          },
          "bothamount": {
            "description": "Filters report contents to include information for specified transaction amount. For example, bothamount=1233.45 limits report contents to transactions of amount 1233.45.",
            "type": "string"
          },
          "cleared": {
            "description": "Filters report contents to include information for specified check status. Supported Values: Cleared : The transaction has been processed by a bank or credit card account and is reflected in the bank balance. Uncleared : A financial entry that has not been reconciled or matched with the corresponding bank statement records. Reconciled : The transaction has been compared to original records and verified as correct. Deposited : A deposit was made into a bank account, such as a checking account.",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: account_name*, create_by, create_date, cust_msg, due_date, doc_num*, inv_date, is_ap_paid, is_cleared, is_no_post*, last_mod_by, memo*, name*, other_account*, pmt_mthd, printed, sales_cust1, sales_cust2, sales_cust3, term_name, tracking_num, tx_date*, txn_type*, term_name, is_adj, last_mod_date, ship_via, olb_status, extra_doc_num, is_ar_paid Additional columns when location tracking enabled: dept_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .",
            "type": "string"
          },
          "createdate_macro": {
            "description": "Predefined report account create date range. Use if you want the report to cover a standard create report date range; otherwise, use start_createdate and end_createdate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year, This Calendar Quarter, This Calendar Quarter-to-date, Last Calendar Quarter, Last Calendar Quarter-to-date, Next Calendar Quarter, This Calendar Year, This Calendar Year-to-date, Last Calendar Year, Last Calendar Year-to-date, Next Calendar Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "docnum": {
            "description": "Filters report contents to include information for specified transaction number, as found in the docnum parameter of the transaction object.",
            "type": "string"
          },
          "duedate_macro": {
            "description": "Predefined date range of due dates for balances to include in the report; otherwise, use the start_duedate and end_duedate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_createdate": {
            "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "end_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "end_moddate": {
            "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
            "type": "string"
          },
          "group_by": {
            "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type, Customer, Vendor, Employee, Location, Payment Method, Day, Week, Month, Quarter, Year, Fiscal Year, Fiscal Quarter, None",
            "type": "string"
          },
          "memo": {
            "description": "Filters report contents to include information for specified memo. Supported Values: One or more comma separated memo IDs.",
            "type": "string"
          },
          "moddate_macro": {
            "description": "Predefined report account modification date range. Use if you want the report to cover a standard report date range when accounts were modified; otherwise, use the start_moddate and end_moddate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "name": {
            "description": "Filters report contents based on the specified comma separated list of ids for the name list customer, vendor, or employee objects. Query the Customer, Vendor, or Employee name list resource to determine the list of objects for this reference. Specify values found in Customer.Id , Vendor.Id , and Employee.Id . For example, name=1,4,7 includes data in the report for namelist ids 1, 4, and 7. vendor and employee objects",
            "type": "string"
          },
          "payment_method": {
            "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa , Credit Card",
            "type": "string"
          },
          "printed": {
            "description": "Filters report contents based on whether checks are printed or not. Supported Values: Printed , To_be_printed",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "source_account_type": {
            "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
            "type": "string"
          },
          "start_createdate": {
            "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "start_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "start_moddate": {
            "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
            "type": "string"
          },
          "term": {
            "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
            "type": "string"
          },
          "transaction_type": {
            "description": "Filters report contents based transaction type. Supported values include: CreditCardCharge, Check, Invoice, ReceivePayment, JournalEntry, Bill, CreditCardCredit, VendorCredit, Credit, BillPaymentCheck, BillPaymentCreditCard, Charge, Transfer, Deposit, Statement, BillableCharge, TimeActivity, CashPurchase, SalesReceipt, CreditMemo, CreditRefund, Estimate, InventoryQuantityAdjustment, PurchaseOrder, GlobalTaxPayment, GlobalTaxAdjustment, Service Tax Refund, Service Tax Gross Adjustment, Service Tax Reversal, Service Tax Defer, Service Tax Partial Utilisation",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_transactionlistreportheader": {
        "additionalProperties": true,
        "properties": {
          "Currency": {
            "description": "A string containing the currency code associated with the report.",
            "type": "string"
          },
          "Customer": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Department": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Employee": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "EndPeriod": {
            "description": "The date specified by the end_date query parameter submitted with the request. Format is yyyy-mm-dd .",
            "type": "string"
          },
          "Item": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          },
          "Option": {
            "items": {
              "$ref": "#/components/schemas/qbo_reportoption",
              "description": "Container for one or more name/value pairs that return additional information about the report contents."
            },
            "type": "array"
          },
          "ReportBasis": {
            "description": "Accounting method. Possible values include Cash and Accrual .",
            "type": "string"
          },
          "ReportName": {
            "description": "Name of the report.",
            "type": "string"
          },
          "StartPeriod": {
            "description": "The date specified by the start_date query parameter submitted with the request. Format is yyyy-mm-dd .",
            "type": "string"
          },
          "SummarizeColumnsBy": {
            "description": "The method by which report columns are organized. This contains the value specified by the summarize_column_by query parameter submitted with the request.",
            "type": "string"
          },
          "Time": {
            "description": "Date and timestamp of the report.",
            "type": "string"
          },
          "Vendor": {
            "description": "A string containing the Ids as specified with the corresponding filter query parameter. Only those filter query parameters specified in the request are returned in the header.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_transactionlistreporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/qbo_reportrows",
            "description": "Top level container holding information for report rows."
          }
        },
        "type": "object"
      },
      "qbo_transactionlistwithsplitsquery": {
        "additionalProperties": true,
        "properties": {
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: tx_date, txn_type, doc_num, is_no_post, account_name, memo, account_name, amount, is_adj, create_by, create_date, last_mod_date, last_mod_by, cust_name, vend_name, rate, quantity, item_name, emp_name, pmt_mthd, nat_open_bal, tax_type, is_billable, debt_amt, credit_amt, is_cleared, olb_status Additional columns when location tracking enabled: dept_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "docnum": {
            "description": "Filters report contents to include information for specified transaction number, as found in the docnum parameter of the transaction object.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "group_by": {
            "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type",
            "type": "string"
          },
          "name": {
            "description": "Filters report contents based on the specified comma separated list of ids for the name list customer, vendor, or employee objects. Query the Customer, Vendor, or Employee name list resource to determine the list of objects for this reference. Specify values found in Customer.Id , Vendor.Id , and Employee.Id . For example, name=1,4,7 includes data in the report for namelist ids 1, 4, and 7. vendor and employee objects",
            "type": "string"
          },
          "payment_method": {
            "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter. Supported Values: account_name, is_adj, create_by, create_date, tx_date, last_mod_date, last_mod_by, name, doc_num, pmt_mthd, is_no_post , txn_type",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "source_account_type": {
            "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "transaction_type": {
            "description": "Filters report contents based transaction type. Supported values include: CreditCardCharge, Check, Invoice, ReceivePayment, JournalEntry, Bill, CreditCardCredit, VendorCredit, Credit, BillPaymentCheck, BillPaymentCreditCard, Charge, Transfer, Deposit, Statement, BillableCharge, TimeActivity, CashPurchase, SalesReceipt, CreditMemo, CreditRefund, Estimate, InventoryQuantityAdjustment, PurchaseOrder, GlobalTaxPayment, GlobalTaxAdjustment, Service Tax Refund, Service Tax Gross Adjustment, Service Tax Reversal, Service Tax Defer, Service Tax Partial Utilisation",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_transferrequest": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction."
          },
          "FromAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
          },
          "ToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
          }
        },
        "required": [
          "Amount",
          "ToAccountRef",
          "FromAccountRef"
        ],
        "type": "object"
      },
      "qbo_transferresponse": {
        "additionalProperties": true,
        "properties": {
          "Amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total amount of the transaction."
          },
          "FromAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "ToAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          }
        },
        "required": [
          "ToAccountRef",
          "Amount",
          "FromAccountRef"
        ],
        "type": "object"
      },
      "qbo_trialbalancequery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_trialbalancereportrows": {
        "additionalProperties": true,
        "properties": {
          "Row": {
            "description": "Represents a row in a report. A group of rows is enclosed in a Rows container. Rows may be nested either as a single row or in sets, based on the accounts represented in the report and query parameters specified in the request. Parameters: type —As an enclosing section of sub-rows, this is always the string, Section . As a leaf row, this is always the string, Data . group —The group name, valid when type=Section .",
            "items": {
              "$ref": "#/components/schemas/qbo_reportrow"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "qbo_trialbalancereporttoplevel": {
        "additionalProperties": true,
        "properties": {
          "Columns": {
            "$ref": "#/components/schemas/qbo_reportcolumns",
            "description": "Top level container holding information for report columns or subcolumns."
          },
          "Header": {
            "$ref": "#/components/schemas/qbo_reportheader",
            "description": "The report header."
          },
          "Rows": {
            "$ref": "#/components/schemas/qbo_profitandlossreportrows",
            "description": "Top level container holding information for profit and loss report rows."
          }
        },
        "type": "object"
      },
      "qbo_txntaxdetail": {
        "additionalProperties": true,
        "properties": {
          "TaxLine": {
            "items": {
              "$ref": "#/components/schemas/qbo_taxline"
            },
            "type": "array"
          },
          "TotalTax": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Total tax calculated for the transaction, excluding any tax lines manually inserted into the transaction line list."
          },
          "TxnTaxCodeRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the transaction tax code. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for TaxCodeRef.value and TaxCodeRef.name , respectively. If specified and sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ), this element is ignored and not returned. For sales transactions, only: if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the supplied transaction tax code is replaced by the automated sales tax engine recommendation."
          }
        },
        "type": "object"
      },
      "qbo_vendorandpurchaseprefs": {
        "additionalProperties": true,
        "properties": {
          "BillableExpenseTracking": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Billable Expense tracking enabled."
          },
          "DefaultMarkup": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Default markup rate used to calculate the markup amount on the transactions. To enter a markup rate of 8.5%, enter 8.5, not 0.085."
          },
          "DefaultMarkupAccount": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Default markup account."
          },
          "DefaultTerms": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Default terms"
          },
          "POCustomField": {
            "items": {
              "additionalProperties": true,
              "properties": {
                "CustomField": {
                  "items": {
                    "anyOf": [
                      {
                        "$ref": "#/components/schemas/qbo_customfieldboolpo"
                      },
                      {
                        "$ref": "#/components/schemas/qbo_customfieldstringpo"
                      }
                    ],
                    "description": "Toggles whether Purchase Order Custom Fields are enabled on the sales form. Purchase Order forms can have up to three custom fields",
                    "readOnly": true
                  },
                  "type": "array"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "TPAREnabled": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates if TPAR enabled by customer.",
            "readOnly": true
          },
          "TrackingByCustomer": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Enables tracking by customer."
          }
        },
        "type": "object"
      },
      "qbo_vendorbalancedetailquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "appaid": {
            "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
            "type": "string"
          },
          "columns": {
            "description": "Column types to be shown in the report. Supported Values: create_by, create_date, doc_num*, due_date*, last_mod_by, last_mod_date, memo*, term_name, tx_date*, txn_type*, vend_bill_addr, vend_comp_name, vend_name*, vend_pri_cont, vend_pri_email, vend_pri_tel Additional columns with location tracking enabled: dept_name*",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "duedate_macro": {
            "description": "Predefined date range of due dates for balances to include in the report; otherwise, use the start_duedate and end_duedate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "end_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "sort_by": {
            "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_duedate": {
            "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
            "type": "string"
          },
          "term": {
            "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_vendorbalancequery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "appaid": {
            "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "qzurl": {
            "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
            "type": "string"
          },
          "report_date": {
            "description": "Start date to use for the report, in the format YYYY-MM-DD .",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_vendorcreditrequest": {
        "additionalProperties": true,
        "properties": {
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                },
                {
                  "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                }
              ]
            },
            "type": "array"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "The vendor reference for this transaction."
          }
        },
        "required": [
          "VendorRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_vendorcreditresponse": {
        "additionalProperties": true,
        "properties": {
          "APAccountRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
          },
          "DepartmentRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
          },
          "DocNumber": {
            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
            "type": "string"
          },
          "ExchangeRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
          },
          "GlobalTaxCalculation": {
            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
            "type": "string"
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "IncludeInAnnualTPAR": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
          },
          "Line": {
            "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                },
                {
                  "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                }
              ]
            },
            "type": "array"
          },
          "LinkedTxn": {
            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
            "items": {
              "$ref": "#/components/schemas/qbo_linkedtxn"
            },
            "type": "array"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "PrivateNote": {
            "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
            "type": "string"
          },
          "RecurDataRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
            "readOnly": true
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "TotalAmt": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
            "readOnly": true
          },
          "TxnDate": {
            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
            "type": "string"
          },
          "VendorRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
          }
        },
        "required": [
          "VendorRef",
          "Line"
        ],
        "type": "object"
      },
      "qbo_vendorexpensesquery": {
        "additionalProperties": true,
        "properties": {
          "accounting_method": {
            "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
            "type": "string"
          },
          "class": {
            "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
            "type": "string"
          },
          "customer": {
            "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
            "type": "string"
          },
          "date_macro": {
            "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
            "type": "string"
          },
          "department": {
            "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
            "type": "string"
          },
          "end_date": {
            "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "sort_order": {
            "description": "The sort order. Supported Values: ascend , descend",
            "type": "string"
          },
          "start_date": {
            "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
            "type": "string"
          },
          "summarize_column_by": {
            "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
            "type": "string"
          },
          "vendor": {
            "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_vendorpaymentbankdetail": {
        "additionalProperties": true,
        "properties": {
          "BankAccountName": {
            "description": "Name on the Bank Account",
            "type": "string"
          },
          "BankAccountNumber": {
            "description": "Vendor's Bank Account number.",
            "type": "string"
          },
          "BankBranchIdentifier": {
            "description": "bank identification number used to identify the Bank Branch. 6 digit value in format xxx-xxx.",
            "type": "string"
          },
          "StatementText": {
            "description": "Text/note/comment for Remmittance",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_vendorrequest": {
        "additionalProperties": true,
        "properties": {
          "DisplayName": {
            "description": "The name of the vendor as displayed. Must be unique across all Vendor, Customer, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating vendor name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
            "type": "string"
          },
          "FamilyName": {
            "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "GivenName": {
            "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "MiddleName": {
            "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "Suffix": {
            "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "Title": {
            "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , Suffix , or FullyQualifiedName attributes are required during create.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbo_vendorresponse": {
        "additionalProperties": true,
        "properties": {
          "AcctNum": {
            "description": "Name or number of the account associated with this vendor.",
            "type": "string"
          },
          "Active": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "If true, this object is currently enabled for use by QuickBooks."
          },
          "AlternatePhone": {
            "$ref": "#/components/schemas/qbo_telephonenumber30",
            "description": "Alternate phone number."
          },
          "Balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create, read-only otherwise.",
            "readOnly": true
          },
          "BillAddr": {
            "$ref": "#/components/schemas/qbo_physicaladdress",
            "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
          },
          "BillRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "BillRate can be set to specify this vendor's hourly billing rate."
          },
          "CompanyName": {
            "description": "The name of the company associated with the person or organization.",
            "type": "string"
          },
          "CostRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Pay rate of the vendor"
          },
          "CurrencyRef": {
            "$ref": "#/components/schemas/qbo_currencyref",
            "description": "Reference to the currency in which all amounts associated with this vendor are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this vendor is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency . Read-only after object is created.",
            "readOnly": true
          },
          "DisplayName": {
            "description": "The name of the vendor as displayed. Must be unique across all Vendor, Customer, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating vendor name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
            "type": "string"
          },
          "FamilyName": {
            "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "Fax": {
            "$ref": "#/components/schemas/qbo_telephonenumber30",
            "description": "Fax number."
          },
          "GivenName": {
            "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "HasTPAR": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicate if the vendor has TPAR enabled. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
          },
          "Id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "MetaData": {
            "$ref": "#/components/schemas/qbo_modificationmetadata",
            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
          },
          "MiddleName": {
            "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "Mobile": {
            "$ref": "#/components/schemas/qbo_telephonenumber30",
            "description": "Mobile phone number."
          },
          "OtherContactInfo": {
            "$ref": "#/components/schemas/qbo_contactinfo",
            "description": "List of ContactInfo entities of any contact info type."
          },
          "PrimaryEmailAddr": {
            "$ref": "#/components/schemas/qbo_emailaddress",
            "description": "Primary email address."
          },
          "PrimaryPhone": {
            "$ref": "#/components/schemas/qbo_telephonenumber30",
            "description": "Primary phone number."
          },
          "PrintOnCheckName": {
            "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update.",
            "type": "string"
          },
          "Source": {
            "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
            "type": "string"
          },
          "Suffix": {
            "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
            "type": "string"
          },
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "T4AEligible": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "True if vendor is T4A eligible. Valid for CA locale"
          },
          "T5018Eligible": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "True if vendor is T5018 eligible. Valid for CA locale"
          },
          "TaxIdentifier": {
            "description": "The tax ID of the Person or Organization. The value is masked in responses, exposing only last four characters. For example, the ID of 123-45-6789 is returned as XXXXXXX6789 .",
            "type": "string"
          },
          "TermRef": {
            "$ref": "#/components/schemas/qbo_referencetype",
            "description": "Reference to a default Term associated with this Vendor object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for TermRef.value and TermRef.name , respectively."
          },
          "Title": {
            "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes are required during create.",
            "type": "string"
          },
          "Vendor1099": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This vendor is an independent contractor; someone who is given a 1099-MISC form at the end of the year. A 1099 vendor is paid with regular checks, and taxes are not withheld on their behalf."
          },
          "VendorPaymentBankDetail": {
            "$ref": "#/components/schemas/qbo_vendorpaymentbankdetail",
            "description": "Vendor Payment Bank Detail."
          },
          "WebAddr": {
            "$ref": "#/components/schemas/qbo_websiteaddress",
            "description": "Website address."
          }
        },
        "type": "object"
      },
      "qbo_voidrequest": {
        "additionalProperties": true,
        "properties": {
          "SyncToken": {
            "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.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "Unique identifier for this object.",
            "readOnly": true,
            "type": "string"
          },
          "sparse": {
            "description": "Include and set to true to void an object.",
            "type": "string"
          }
        },
        "required": [
          "SyncToken",
          "id",
          "sparse"
        ],
        "type": "object"
      },
      "qbo_websiteaddress": {
        "additionalProperties": true,
        "properties": {
          "URI": {
            "description": "Uniform Resource Identifier for the web site.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_address": {
        "additionalProperties": true,
        "properties": {
          "city": {
            "description": "The city name for the address.",
            "maxLength": 30,
            "type": "string"
          },
          "country": {
            "description": "The ISO-standard country code. Refer to the ISO Country Code List .",
            "maxLength": 2,
            "type": "string"
          },
          "postalCode": {
            "description": "The postal code for the address. For US and Canada, this is the zip code. Required if no region is provided.",
            "maxLength": 10,
            "type": "string"
          },
          "region": {
            "description": "Specifies the region within a country. This is the state, province, prefecture, or region name. For the US, this is the state name. For Canada, this is the province name. Required if no postal code is provided.",
            "maxLength": 30,
            "type": "string"
          },
          "streetAddress": {
            "description": "The full street adddress. This may include the house number and street name (CR acceptable).",
            "maxLength": 30,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_bankaccount": {
        "additionalProperties": true,
        "properties": {
          "accountNumber": {
            "description": "The number of the bank account. For privacy and security, Account numbers that are 6 digits or less: all but the last 2 digits are masked Account numbers that are 7 digits or longer: all but the last 4 digits are masked Account Number masking changes are available in Sandbox companies currently and will be available from July 11th, 2022 for Production companies.",
            "type": "string"
          },
          "accountType": {
            "description": "The type of bank account. Valid values: PERSONAL_CHECKING : Use for personal checking accounts. PERSONAL_SAVINGS : Use for personal savings accounts. BUSINESS_CHECKING : Use for business checking accounts. BUSINESS_SAVINGS : Use for business savings accounts.",
            "type": "string"
          },
          "bankCode": {
            "description": "For US : This should also be the routing number for the bank associated with the account.",
            "type": "string"
          },
          "country": {
            "description": "The ISO-standard country code. Refer to the ISO Country Code List .",
            "maxLength": 2,
            "type": "string"
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates if the bank account is the default. When users set a default, the account flag is true . This is the bank account QuickBooks uses when another isn't specified. The flag defaults to false . When a bank account flag is true , all other stored bank accounts are automatically set to false ."
          },
          "entityId": {
            "description": "The ID of the entity the bank account is associated with.",
            "type": "string"
          },
          "entityType": {
            "description": "The entity or user type the bank account is associated with. Example values: Customer , Employee , Vendor or Company",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier of a bank account object. The id is required for update or delete operations.",
            "type": "string"
          },
          "inputType": {
            "description": "Specifies the input type. Valid values: KEYED : Indicates a manually-entered key. SCANNED",
            "type": "string"
          },
          "name": {
            "description": "The name of the bank account owner.",
            "maxLength": 64,
            "type": "string"
          },
          "phone": {
            "description": "The phone number associated with the bank account.",
            "type": "string"
          },
          "routingNumber": {
            "description": "The routing number for the bank associated with the account. For privacy and security, we only display the last four digits of the routing number.",
            "type": "string"
          },
          "updated": {
            "description": "The time the object was last updated. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          }
        },
        "required": [
          "name",
          "accountNumber",
          "phone",
          "accountType",
          "routingNumber"
        ],
        "type": "object"
      },
      "qbpayments_bankaccountid": {
        "additionalProperties": true,
        "properties": {
          "bankaccount_id": {
            "description": "The ID of the bank account you plan to delete.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the customer you're deleting the bank account for. If you're using the QuickBooks Online Accounting API, you can use a customer , vendor , or employee object to get their ID. If the entity is a QuickBooks Online company, the value is the realm ID .",
            "type": "string"
          }
        },
        "required": [
          "bankaccount_id"
        ],
        "type": "object"
      },
      "qbpayments_bankaccountiddelete": {
        "additionalProperties": true,
        "properties": {
          "bankaccount_id": {
            "description": "The bank account to be deleted.",
            "type": "string"
          },
          "id": {
            "description": "The customer id to which a bank account should be deleted. If you are using QuickBooks Online, this can be obtained using the Customer resource in the Quickbooks Accounting API. Otherwise, it can be the customer's ID stored in your app.",
            "type": "string"
          }
        },
        "required": [
          "bankaccount_id"
        ],
        "type": "object"
      },
      "qbpayments_bankaccountidretrieve": {
        "additionalProperties": true,
        "properties": {
          "bankaccount_id": {
            "description": "The bank account you're calling.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the user or QuickBooks Company you're getting info for. If you're using the QuickBooks Online Accounting API, you can use a customer , vendor , or employee object to get their ID. If the entity is a QuickBooks Online company, the value is the realm ID .",
            "type": "string"
          }
        },
        "required": [
          "bankaccount_id"
        ],
        "type": "object"
      },
      "qbpayments_bankaccountquery": {
        "additionalProperties": true,
        "properties": {
          "id": {
            "description": "The ID of the customer your app is creating the bank account for. If you're using the QuickBooks Online Accounting API, you can use a customer , vendor , or employee object to get their ID. If the entity is a QuickBooks Online company, the value is the realm ID .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_bankaccountrequest": {
        "additionalProperties": true,
        "properties": {
          "accountNumber": {
            "description": "The bank account number to be used. For security purposes, only the last four digits are displayed.",
            "type": "string"
          },
          "accountType": {
            "description": "The type of account to be used. Valid values include: PERSONAL_CHECKING the account is a personal checking account. PERSONAL_SAVINGS the account is a personal savings account. BUSINESS_CHECKING the account is a business checking account. BUSINESS_SAVINGS the account is a business savings account.",
            "type": "string"
          },
          "bankCode": {
            "description": "A code assigned by a central bank, a bank supervisory body or a Bankers Association in a country to all its licensed member banks or financial institutions. Varies depending on country.",
            "type": "string"
          },
          "country": {
            "description": "ISO-standard country code. Refer to Country Code List for a list of codes.",
            "type": "string"
          },
          "default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "A flag to indicate whether the account is the default, which will be used when one is not explicitly specified. The flag defaults to false ; when one account is flagged as true, all other stored accounts in the collection will automatically be set to false."
          },
          "inputType": {
            "description": "Specifies the input type. Valid values include: KEYED A manually-entered account key.",
            "type": "string"
          },
          "name": {
            "description": "The name of the bank account holder.",
            "type": "string"
          },
          "phone": {
            "description": "A phone number to be associated with the account.",
            "type": "string"
          },
          "routingNumber": {
            "description": "The bank routing number. For security purposes, only the last four digits are displayed.",
            "type": "string"
          }
        },
        "required": [
          "name",
          "accountNumber",
          "phone",
          "accountType",
          "routingNumber"
        ],
        "type": "object"
      },
      "qbpayments_bankaccountretrieve": {
        "additionalProperties": true,
        "properties": {
          "id": {
            "description": "The ID of the user or QuickBooks Company you're getting info for. If you're using the QuickBooks Online Accounting API, you can use a customer , vendor , or employee object to get their ID. If the entity is a QuickBooks Online company, the value is the realm ID .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_capturerequest": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 ."
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_paymentcontext",
            "description": "Additional data you want to store with the transaction."
          },
          "description": {
            "description": "Text info you want to store with the transaction.",
            "type": "string"
          }
        },
        "required": [
          "amount"
        ],
        "type": "object"
      },
      "qbpayments_captureresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 ."
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_paymentcontext",
            "description": "Additional data you want to store with the transaction."
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Text info you want to store with the transaction.",
            "type": "string"
          }
        },
        "required": [
          "amount"
        ],
        "type": "object"
      },
      "qbpayments_card": {
        "additionalProperties": true,
        "properties": {
          "address": {
            "$ref": "#/components/schemas/qbpayments_address",
            "description": "The cardholder's full address."
          },
          "cardType": {
            "description": "The type of credit or debit card. Valid values: VISA MC AMEX DISC DINERS JCB",
            "type": "string"
          },
          "commercialCardCode": {
            "description": "A code that indicates if the card is a commercial or corporate card. This can be used to track specific business purchases.",
            "maxLength": 25,
            "type": "string"
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "cvc": {
            "description": "The Card Verification Code (CVC) on the back of the card. This can be up to four digits. The number varies by card provider. For security purposes, the CVC value can't be stored. It must be supplied in transaction requests and then erased.",
            "type": "string"
          },
          "default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates if the credit or debit card is the default. When users set a default, the flag is true . This is the credit or debit card QuickBooks uses when another isn't specified. The flag defaults to false . When a credit or debit card flag is true, all other cards are automatically set to false."
          },
          "entityId": {
            "description": "The ID of the entity the card is associated with.",
            "type": "string"
          },
          "entityType": {
            "description": "The entity or user type the card is associated with. Example values: Customer , Employee , Vendor or Company .",
            "type": "string"
          },
          "expMonth": {
            "description": "The card's two digit expiration month.",
            "type": "string"
          },
          "expYear": {
            "description": "The card's four digit expiration year.",
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the card object.",
            "type": "string"
          },
          "isBusiness": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This flag is set to true if the credit or debit card is a business card."
          },
          "isLevel3Eligible": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Flag set to true if the credit or debit card falls into the L3 eligible Bank Identification Number (BIN) range."
          },
          "name": {
            "description": "The name of the credit or debit card holder, as it appears on the card.",
            "maxLength": 30,
            "type": "string"
          },
          "number": {
            "description": "The credit or debit card number.",
            "type": "string"
          },
          "updated": {
            "description": "The time the object was last updated. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "zeroDollarVerification": {
            "$ref": "#/components/schemas/qbpayments_zerodollarverification",
            "description": "Stores card verification information."
          }
        },
        "required": [
          "number",
          "expMonth",
          "expYear",
          "cvc"
        ],
        "type": "object"
      },
      "qbpayments_cardid": {
        "additionalProperties": true,
        "properties": {
          "card_id": {
            "description": "The ID of the card you plan to delete.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the customer you're deleting the card for. If you're using the QuickBooks Online Accounting API, you can use the Customer , Vendor , or Employee entity to get their ID. This value can be stored in QuickBooks or your app.",
            "type": "string"
          }
        },
        "required": [
          "card_id"
        ],
        "type": "object"
      },
      "qbpayments_cardidretrieve": {
        "additionalProperties": true,
        "properties": {
          "card_id": {
            "description": "The card or debit card you want info for.",
            "type": "string"
          },
          "id": {
            "description": "The ID of the customer your app is getting card info for. If you're using the QuickBooks Online Accounting API, you can use the Customer , Vendor , or Employee entity to get their ID. This value can be stored in QuickBooks or your app.",
            "type": "string"
          }
        },
        "required": [
          "card_id"
        ],
        "type": "object"
      },
      "qbpayments_cardpresent": {
        "additionalProperties": true,
        "properties": {
          "ksn": {
            "description": "An identifier known as the Key Serial Number (KSN). This is returned from the device that encrypts the transaction, along with the cryptogram. The KSN is formed from the devices' unique identifier, and an internal transaction counter.",
            "type": "string"
          },
          "pinBlock": {
            "description": "Used to protect the PIN during transmission from the PIN entry device to the verifier. The standard requires that PINs be encrypted. It also specifies several formats that may be used. In each case, the PIN is encoded into a PIN block, which is then encrypted by an \"capproved algorithm\".",
            "type": "string"
          },
          "track1": {
            "description": "Credit card magnetic stripes contain multiple tracks of data. Typical swiped card readers can read both tracks 1 and 2. These fields store swiped card info.",
            "type": "string"
          },
          "track2": {
            "description": "Credit card magnetic stripes contain multiple tracks of data. Typical swiped card readers can read both tracks 1 and 2. These fields store swiped card info.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_cardquery": {
        "additionalProperties": true,
        "properties": {
          "id": {
            "description": "The ID of the customer your app is creating the card for. If you're using the QuickBooks Online Accounting API, you can use the Customer , Vendor , or Employee entity to get their ID. This value can be stored in QuickBooks or your app.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_cardqueryretrieve": {
        "additionalProperties": true,
        "properties": {
          "id": {
            "description": "The ID of the customer your app is getting card info for. If you're using the QuickBooks Online Accounting API, you can use the Customer , Vendor , or Employee entity to get their ID. This value can be stored in QuickBooks or your app.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_cardrequest": {
        "additionalProperties": true,
        "properties": {
          "address": {
            "$ref": "#/components/schemas/qbpayments_address",
            "description": "The cardholder's full address."
          },
          "commercialCardCode": {
            "description": "A code that indicates if the card is a commercial or corporate card. This can be used to track specific business purchases.",
            "maxLength": 25,
            "type": "string"
          },
          "cvc": {
            "description": "The Card Verification Code (CVC) on the back of the card. This can be up to four digits. The number varies by card provider. For security purposes, the CVC value can't be stored. It must be supplied in transaction requests and then erased.",
            "type": "string"
          },
          "default": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Indicates if the credit or debit card is the default. When users set a default, the flag is true . This is the credit or debit card QuickBooks uses when another isn't specified. The flag defaults to false . When a credit or debit card flag is true, all other cards are automatically set to false."
          },
          "expMonth": {
            "description": "The card's two digit expiration month.",
            "type": "string"
          },
          "expYear": {
            "description": "The card's four digit expiration year.",
            "type": "string"
          },
          "isBusiness": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This flag is set to true if the credit or debit card is a business card."
          },
          "name": {
            "description": "The name of the credit or debit card holder, as it appears on the card.",
            "maxLength": 30,
            "type": "string"
          },
          "number": {
            "description": "The credit or debit card number.",
            "type": "string"
          }
        },
        "required": [
          "number",
          "expMonth",
          "expYear",
          "cvc"
        ],
        "type": "object"
      },
      "qbpayments_chargequery": {
        "additionalProperties": true,
        "properties": {
          "id": {
            "description": "The ID of the charge. The ID is defined in the response body of the CREATE charge operation .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_chargerequest": {
        "additionalProperties": true,
        "anyOf": [
          {
            "required": [
              "token"
            ]
          },
          {
            "required": [
              "card"
            ]
          },
          {
            "required": [
              "cardOnFile"
            ]
          }
        ],
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Amount of the transaction. Valid values range 0.00 through 99999.99."
          },
          "capture": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Capture flag. Valid values include: true —The charge has been captured. false —The charge is uncaptured and pending authorization."
          },
          "card": {
            "$ref": "#/components/schemas/qbpayments_card",
            "description": "Token is preferred in order to avoid PCI compliance requirements. Explicit credit card or debit card details associated with this charge. Required if neither token nor cardOnFile are specified."
          },
          "cardOnFile": {
            "description": "The id for a card that has been previously stored on file. Required if neither token nor card are specified.",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_paymentcontext",
            "description": "Additional data you wish to store for this transaction."
          },
          "currency": {
            "description": "Three-letter ISO 4217 currency code representing the currency in which the charge was made.",
            "type": "string"
          },
          "description": {
            "description": "Additional text details to be associated with the charge.",
            "type": "string"
          },
          "token": {
            "description": "Preferred to specifying card or cardOnFile in order to ensure PCI compliance. Opaque representation of the credit card or debit card associated with this charge, as returned by the token endpoint. Applications that access cardholder information using the Payments API are required to follow the payment application data security standard (PA DSS) established by the payment card industry, which specifies how cardholder data must be protected. As such, the token resource provides a programatic way to comply with this standard without having to hold sensitive card information on your own servers.",
            "type": "string"
          }
        },
        "required": [
          "currency",
          "amount",
          "context"
        ],
        "type": "object"
      },
      "qbpayments_chargerequestid": {
        "additionalProperties": true,
        "properties": {
          "charge_request_id": {
            "description": "The request-id of the charge that you want to void.",
            "maxLength": 50,
            "type": "string"
          }
        },
        "required": [
          "charge_request_id"
        ],
        "type": "object"
      },
      "qbpayments_chargeresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 ."
          },
          "authCode": {
            "description": "The authorization code for the charge. Note : This is only available for uncaptured charges.",
            "type": "string"
          },
          "avsStreet": {
            "description": "The address verification service (AVS). This service verifies the street address submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
            "type": "string"
          },
          "avsZip": {
            "description": "The address verification service (AVS). This service verifies the ZIP code submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
            "type": "string"
          },
          "capture": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "A flag that indicates if the charge was captured. Valid values: True : The charge was captured False : The charge wasn't captured. It's pending authorization. Defaults to true ."
          },
          "captureDetail": {
            "$ref": "#/components/schemas/qbpayments_captureresponse",
            "description": "Details about the captured charge. Available for previously authorized charges.",
            "readOnly": true
          },
          "card": {
            "$ref": "#/components/schemas/qbpayments_card",
            "description": "The credit or debit card used for the charge. Required if token isn't specified."
          },
          "cardSecurityCodeMatch": {
            "description": "The 3 or 4 digit card security code number that appears on credit and debit cards. This number is not part of the main credit card number. This field indicates if the security code submitted at the time of the transaction matches what's on file at the cardholder's bank. Valid responses: Pass Fail NotAvailable",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_paymentcontext",
            "description": "Additional info that will be stored with the transaction."
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "currency": {
            "description": "The 3-letter ISO 4217 compliant currency code, which defines the currency for the charge.",
            "type": "string"
          },
          "description": {
            "description": "Free form text description. Additional details associated with the charge.",
            "maxLength": 4000,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the charge. This is a system-generated alpha-numeric ID.",
            "type": "string"
          },
          "refundDetail": {
            "items": {
              "$ref": "#/components/schemas/qbpayments_refundresponse",
              "description": "Details for one or more refunds applied to this charge."
            },
            "type": "array"
          },
          "status": {
            "description": "The status of the charge. Charge athorization and capture are a two part process. Learn more about charge states for the QuickBookls Payments API. Valid values: AUTHORIZED : The card's issuing bank has authorized the cardholder's ability to pay. This ensures the credit or debit card account is in good standing with sufficient funds. DECLINED : The card authorization was declined, rejected by the payment transaction service (PTS), or returned by the payment processor. CAPTURED : The payment is in the second part of the two-step authorization and capture process. CANCELLED : The transaction was cancelled. SETTLED : The payment was successfully funded. The money moved to the seller’s (i.e. merchant’s) bank account. At this point, the charge is complete. REFUNDED : The money successfully transferred back to the buyer (i.e. card holder).",
            "readOnly": true,
            "type": "string"
          },
          "token": {
            "description": "The opaque container for the credit or debit card account associated with the transaction. Required if the card isn't specified. Tokens are preferred to directly specifying a card or cardOnFile to comply with PCI standards. Learn more about creating tokens.",
            "type": "string"
          }
        },
        "required": [
          "currency",
          "amount",
          "context"
        ],
        "type": "object"
      },
      "qbpayments_checkcontext": {
        "additionalProperties": true,
        "properties": {
          "deviceInfo": {
            "$ref": "#/components/schemas/qbpayments_deviceinfo",
            "description": "Info about the device used to process the payment."
          }
        },
        "type": "object"
      },
      "qbpayments_checkquery": {
        "additionalProperties": true,
        "properties": {
          "id": {
            "description": "The id of the eCheck. The ID is defined in the response of the CREATE check operation.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_cvvVerification": {
        "additionalProperties": true,
        "properties": {
          "date": {
            "description": "The date, in ISO 8601 date-time format, such as YYYY-MM-DDTHH:MM:SSZ .",
            "type": "string"
          },
          "result": {
            "description": "Specifies whether the card has been CVV verified. Valid states include: NOT_DONE —CVV verification has not been performed. This is the default state until otherwise specified. MATCH —The CVV code has been matched to the one on the card. NOT_MATCH —The CVV provided does not match the card.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_deviceinfo": {
        "additionalProperties": true,
        "properties": {
          "encrypted": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "The device's encryption status."
          },
          "id": {
            "description": "The device's ID.",
            "type": "string"
          },
          "ipAddress": {
            "description": "The device's IP address.",
            "maxLength": 40,
            "type": "string"
          },
          "latitude": {
            "description": "The device's latitude coordinates.",
            "maxLength": 20,
            "type": "string"
          },
          "longitude": {
            "description": "The device's longitude coordinates.",
            "maxLength": 20,
            "type": "string"
          },
          "macAddress": {
            "description": "The device's media access control (MAC) address.",
            "maxLength": 50,
            "type": "string"
          },
          "phoneNumber": {
            "description": "The device's phone number (if available).",
            "maxLength": 20,
            "type": "string"
          },
          "type": {
            "description": "The type of device.",
            "maxLength": 200,
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_echeckrefundidretrieve": {
        "additionalProperties": true,
        "properties": {
          "echeck_id": {
            "description": "The id of the eCheck you want info for. The ID is defined in the response of the CREATE eCheck operation.",
            "type": "string"
          },
          "refund_id": {
            "description": "The id of the refund you want info for. The ID is defined in the reponse of the VOID or REFUND eCheck operation.",
            "type": "string"
          }
        },
        "required": [
          "echeck_id",
          "refund_id"
        ],
        "type": "object"
      },
      "qbpayments_echeckrefundrequest": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount to be refunded. Valid values: Any value between 0.01 and 99999.99 ."
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_checkcontext",
            "description": "Additional info that will be stored with the transaction."
          },
          "description": {
            "description": "A description of the refund.",
            "maxLength": 4000,
            "type": "string"
          }
        },
        "required": [
          "amount"
        ],
        "type": "object"
      },
      "qbpayments_echeckrefundresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Amount of the transaction. Valid values for amount are in the range 0.00 through 99999.99 ."
          },
          "context": {
            "description": "Additional data that may be stored with the transaction.",
            "type": "string"
          },
          "created": {
            "description": "Object creation time, in ISO 8601 date-time format, such as YYYY-MM-DDTHH:MM:SSZ",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Descriptive text to be stored with the transaction.",
            "type": "string"
          },
          "id": {
            "description": "System generated alpha-numeric id.",
            "type": "string"
          },
          "status": {
            "description": "Current status of the refund transaction. Valid status types include: PENDING —the refund is currently being processed. SUCCEEDED —the refund has been successfully funded. DECLINED —the refund was rejected.",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Indicates the type of refund being processed. Valid types include: VOID —the refund has been requested for a voided transaction. REFUND —the refund has been requested for a refunded transaction.",
            "type": "string"
          }
        },
        "required": [
          "amount"
        ],
        "type": "object"
      },
      "qbpayments_echeckrequest": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Amount of the transaction. Valid values for amount are in the range 0.00 through 99999.99 ."
          },
          "bankAccount": {
            "$ref": "#/components/schemas/qbpayments_bankaccountrequest"
          },
          "bankAccountOnFile": {
            "description": "The bank account details that have been previously stored on file. Required if neither token nor bankAccount are specified",
            "type": "string"
          },
          "checkNumber": {
            "description": "The number for the echeck, if desired.",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_checkcontext",
            "description": "Additional data that may be stored with the transaction."
          },
          "description": {
            "description": "Descriptive text to be stored with the transaction.",
            "maxLength": 4000,
            "type": "string"
          },
          "paymentMode": {
            "description": "The payment mode. This is also known as the SEC Code. Valid options include: WEB : Internet-initiated entry mode, used for internet transactions.",
            "type": "string"
          },
          "token": {
            "description": "An opaque representation of the bank account associated with the debit, as returned by the token endpoint. Required if neither bankAccount nor bankAccountOnFile are specified",
            "type": "string"
          }
        },
        "required": [
          "paymentMode",
          "amount"
        ],
        "type": "object"
      },
      "qbpayments_echeckresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The eCheck amount. Valid values: Any value between 0.01 and 99999.99 ."
          },
          "authCode": {
            "description": "The authorization code for the echeck.",
            "type": "string"
          },
          "bankAccount": {
            "$ref": "#/components/schemas/qbpayments_bankaccount"
          },
          "bankAccountOnFile": {
            "description": "An existing bank account that was previously stored. Specify the ID of the existing bank account. Required if the token or bankAccount aren't specified.",
            "type": "string"
          },
          "checkNumber": {
            "description": "The number of the eCheck associated with the transaction. This number must be unique. Using the same checkNumber to create multiple eChecks will result in declines.",
            "type": "string"
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_deviceinfo",
            "description": "Additional info stored with the transaction."
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Additional details about the eCheck and transaction.",
            "maxLength": 4000,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the eCheck.",
            "type": "string"
          },
          "paymentMode": {
            "description": "The payment mode. This is also known as the SEC Code. Valid values: WEB : Internet-initiated entry mode used for internet transactions.",
            "type": "string"
          },
          "status": {
            "description": "The current status of the check. Learn more about check states . Valid values types: PENDING : The check is being processed. SUCCEEDED : The check was funded and the transaction is complete. DECLINED : The check was rejected. VOIDED : The check was voided. REFUNDED : The check was refunded.",
            "readOnly": true,
            "type": "string"
          },
          "token": {
            "description": "The opaque container for the credit or debit card account associated with the transaction. Required if the bankAccount or bankAccountOnFile aren't specified. Learn more about creating tokens.",
            "type": "string"
          }
        },
        "required": [
          "paymentMode",
          "amount"
        ],
        "type": "object"
      },
      "qbpayments_error": {
        "additionalProperties": true,
        "properties": {
          "detail": {
            "description": "Additional detail of the error.",
            "type": "string"
          },
          "error": {
            "description": "Error code.",
            "type": "string"
          },
          "infoLink": {
            "description": "Link to more information.",
            "type": "string"
          },
          "message": {
            "description": "Reason for the error.",
            "type": "string"
          },
          "moreInfo": {
            "description": "More info.",
            "type": "string"
          },
          "type": {
            "description": "Error type.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_errortype": {
        "additionalProperties": true,
        "properties": {
          "errors": {
            "$ref": "#/components/schemas/qbpayments_error",
            "description": "List of errors returned by the operation."
          }
        },
        "type": "object"
      },
      "qbpayments_lodging": {
        "additionalProperties": true,
        "properties": {
          "chargeType": {
            "description": "Indicates the specific lodging or non-lodging service charged to the customer. Valid values: ConventionFees GiftShop Golf HealthClub Hotel Restaurant Salon Tennis",
            "type": "string"
          },
          "checkInDate": {
            "description": "The date of actual or anticipated check-in, depending on the transaction type. The check-in date can't be later than the check-out date. The date format is dates is CCCC-MM-DD where: CCCC : The four-digit year MM : The two digit month DD : The Two digit day For example: June 5, 2019 is represented as 2019-06-05 .",
            "type": "string"
          },
          "checkOutDate": {
            "description": "The date of actual or anticipated check-out, depending on the transaction type. The check-out date must always be later than the check-in date. The date format is dates is CCCC-MM-DD where: CCCC : The four-digit year MM : The two digit month DD : The Two digit day For example: June 5, 2019 is represented as 2019-06-05 .",
            "type": "string"
          },
          "extraCharges": {
            "description": "Indicates if the current charge contains one or more additional charges. This field is only relevant for lodging apps. It indicates the types of extra charges billed to the customer. They usually apply after a customer checks out. Valid values: GiftShop Laundry Minibar Restaurant Telephone Other",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "folioID": {
            "description": "The unique ID that identifies the bill for a particular guest's stay. This value can be assigned by a hotel or automatically by lodging apps.",
            "maxLength": 25,
            "type": "string"
          },
          "lengthOfStay": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The anticipated, actual, or icremental length of stay, depending on the transaction type."
          },
          "roomRate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The nightly rate for the room. This field is only relevant for lodging apps. It should represent the nightly rate for the room as quoted at the time of reservation, including the taxes. If the reservation spans multiple days, provide the average rate for those days."
          },
          "specialProgram": {
            "description": "Indicates if the current charge is a normal room charge, an advance deposit, and so forth. This field is only relevant for lodging apps. It indicates the reason for the charge. Valid values: AdvanceDeposit AssuredReservation DelayedCharge ExpressService NormalCharge NoShowCharge",
            "type": "string"
          },
          "totalAuthAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The total amount authorized by the card issuer for the current credit card and the current FolioID . It refers to the total amount authorized for the particular card and folio and includes tax and other applicable charges. Apps are responsible for keeping a running total of authorizations and submitting the correct amount in this field."
          }
        },
        "type": "object"
      },
      "qbpayments_paymentcontext": {
        "additionalProperties": true,
        "properties": {
          "deviceInfo": {
            "$ref": "#/components/schemas/qbpayments_deviceinfo",
            "description": "Provides info about the device used to swipe or take payments."
          },
          "isEcommerce": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Flag that indicates if the charge is an eCommerce transaction made over the web."
          },
          "lodging": {
            "$ref": "#/components/schemas/qbpayments_lodging",
            "description": "For lodging transactions, provides details about the lodging."
          },
          "mobile": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Flag that indicates if the charge was made from a mobile device. The card can be keyed, swiped, dipped or tapped on the merchant's POS device."
          },
          "recurring": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This is set to true if the charge is recurring. Note : This value ignored for capture and refund requests."
          },
          "restaurant": {
            "$ref": "#/components/schemas/qbpayments_restaurant",
            "description": "For restaurant transactions, provides details about the restaurant."
          },
          "tax": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The sales tax required for commercial card processing."
          }
        },
        "required": [
          "mobile",
          "isEcommerce"
        ],
        "type": "object"
      },
      "qbpayments_paymentreceipt": {
        "additionalProperties": true,
        "properties": {
          "clientTransID": {
            "description": "The `client transaction id` or `cti` of the invoice. Note : use our mock client transaction id to retrieve a sample payment receipt PDF.",
            "type": "string"
          }
        },
        "required": [
          "clientTransID"
        ],
        "type": "object"
      },
      "qbpayments_refundquery": {
        "additionalProperties": true,
        "properties": {
          "id": {
            "description": "The ID of the charge you want info for. The ID is defined in the response body of the CREATE charge operation",
            "type": "string"
          },
          "refund_id": {
            "description": "The ID of the refund you want info for. The ID is defined in the response body of the REFUND a charge operation",
            "type": "string"
          }
        },
        "required": [
          "refund_id"
        ],
        "type": "object"
      },
      "qbpayments_refundrequest": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 ."
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_paymentcontext",
            "description": "Additional data you wish to store for this transaction."
          },
          "description": {
            "description": "Text info you want to store with the transaction.",
            "type": "string"
          }
        },
        "required": [
          "amount"
        ],
        "type": "object"
      },
      "qbpayments_refundresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "Amount. If no number is specified, the full amount will be used."
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_paymentcontext",
            "description": "Additional data you wish to store for this transaction."
          },
          "created": {
            "description": "Object create time, in ISO 8601 date-time format, such as YYYY-MM-DDTHH:MM:SSZ",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Description.",
            "type": "string"
          },
          "id": {
            "description": "System generated alpha-numeric id.",
            "type": "string"
          },
          "status": {
            "description": "Status of the refund. Valid status types include: ISSUED , DECLINED , SETTLED , VOIDED and SUCCEEDED .",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "The type of refund. Valid type include: REFUND or VOID .",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_requestid": {
        "additionalProperties": true,
        "properties": {
          "request-Id": {
            "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
            "maxLength": 50,
            "type": "string"
          }
        },
        "required": [
          "request-Id"
        ],
        "type": "object"
      },
      "qbpayments_restaurant": {
        "additionalProperties": true,
        "properties": {
          "beverageAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the current charge attributed to beverages."
          },
          "foodAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the current charge attributed to food."
          },
          "serverID": {
            "description": "The 2-digit string that identifies the individual server responsible for the transaction. Restaurant assign their own identifiers to their servers.",
            "maxLength": 2,
            "type": "string"
          },
          "taxAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the current charge attributed to tax."
          },
          "tipAmount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The amount of the current charge attributed to tips."
          }
        },
        "type": "object"
      },
      "qbpayments_token": {
        "additionalProperties": true,
        "properties": {
          "value": {
            "description": "The ID of the system generated token. Learn more about the token entity.",
            "type": "string"
          }
        },
        "required": [
          "value"
        ],
        "type": "object"
      },
      "qbpayments_tokenrequest": {
        "additionalProperties": true,
        "properties": {
          "bankAccount": {
            "$ref": "#/components/schemas/qbpayments_bankaccount",
            "description": "The bank account associated with this charge. Required if a card isn't specified."
          },
          "card": {
            "$ref": "#/components/schemas/qbpayments_card",
            "description": "The credit card associated with the token. Required if a bankAccount isn't specified."
          }
        },
        "type": "object"
      },
      "qbpayments_txnrequestcontext": {
        "additionalProperties": true,
        "properties": {
          "mobile": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "Flag that indicates if the charge was made from a mobile device. The card can be keyed, swiped, dipped or tapped on the merchant's POS device."
          },
          "recurring": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "enum": [
                  "true",
                  "false"
                ],
                "type": "string"
              }
            ],
            "description": "This is set to true if the charge is recurring. Note : This value ignored for capture and refund requests."
          }
        },
        "type": "object"
      },
      "qbpayments_txnrequestresponse": {
        "additionalProperties": true,
        "properties": {
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "type": "string"
              }
            ],
            "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 .."
          },
          "context": {
            "$ref": "#/components/schemas/qbpayments_txnrequestcontext",
            "description": "Additional info that will be stored with the transaction."
          },
          "created": {
            "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "The system-generated alpha-numeric ID of the void.",
            "type": "string"
          },
          "status": {
            "description": "The status of the void. Valid responses: ISSUED : The void was successfull and the money went back to the card holder successfully been issued. DECLINED L: The system didn't find a match. This isn't common.",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "The type of transaction being voided. Valid types include: VOID : The transaction needs to be voided.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "qbpayments_zerodollarverification": {
        "additionalProperties": true,
        "properties": {
          "status": {
            "description": "Denotes the verification status of the credit or debit card.",
            "type": "string"
          },
          "transactionId": {
            "description": "The ID of the transaction (if returned) from the verification service.",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "description": "Contains information about type of verification used to verify the creidt or debit card. It can be $0auth with card networks, or be an internal Intuit service",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      }
    }
  },
  "info": {
    "title": "QuickBooks Online Accounting and Payments API",
    "version": "2026-10-20"
  },
  "openapi": "3.1.0",
  "paths": {
    "/manage/entitlements/v3/{realmID}": {
      "get": {
        "operationId": "entitlements/read_entitlements",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read entitlements"
      }
    },
    "/quickbooks/v4/customers/{id}/bank-accounts": {
      "get": {
        "operationId": "payments/bankaccounts/get_a_list_of_bank_accounts",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/output_qbpayments_bankaccount"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Get a list of bank accounts"
      },
      "post": {
        "operationId": "payments/bankaccounts/create_a_bank_account",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "accountNumber": {
                    "description": "The bank account number to be used. For security purposes, only the last four digits are displayed.",
                    "type": "string"
                  },
                  "accountType": {
                    "description": "The type of account to be used. Valid values include: PERSONAL_CHECKING the account is a personal checking account. PERSONAL_SAVINGS the account is a personal savings account. BUSINESS_CHECKING the account is a business checking account. BUSINESS_SAVINGS the account is a business savings account.",
                    "type": "string"
                  },
                  "bankCode": {
                    "description": "A code assigned by a central bank, a bank supervisory body or a Bankers Association in a country to all its licensed member banks or financial institutions. Varies depending on country.",
                    "type": "string"
                  },
                  "country": {
                    "description": "ISO-standard country code. Refer to Country Code List for a list of codes.",
                    "type": "string"
                  },
                  "created": {
                    "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "default": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "A flag to indicate whether the account is the default, which will be used when one is not explicitly specified. The flag defaults to false ; when one account is flagged as true, all other stored accounts in the collection will automatically be set to false."
                  },
                  "entityId": {
                    "description": "The ID of the entity the bank account is associated with.",
                    "type": "string"
                  },
                  "entityType": {
                    "description": "The entity or user type the bank account is associated with. Example values: Customer , Employee , Vendor or Company",
                    "type": "string"
                  },
                  "id": {
                    "description": "The unique identifier of a bank account object. The id is required for update or delete operations.",
                    "type": "string"
                  },
                  "inputType": {
                    "description": "Specifies the input type. Valid values include: KEYED A manually-entered account key.",
                    "type": "string"
                  },
                  "name": {
                    "description": "The name of the bank account holder.",
                    "type": "string"
                  },
                  "phone": {
                    "description": "A phone number to be associated with the account.",
                    "type": "string"
                  },
                  "routingNumber": {
                    "description": "The bank routing number. For security purposes, only the last four digits are displayed.",
                    "type": "string"
                  },
                  "updated": {
                    "description": "The time the object was last updated. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "accountNumber",
                  "phone",
                  "accountType",
                  "routingNumber"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_bankaccount"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Create a bank account"
      }
    },
    "/quickbooks/v4/customers/{id}/bank-accounts/createFromToken": {
      "post": {
        "operationId": "payments/bankaccounts/create_a_bank_account_from_a_token",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "accountNumber": {
                    "description": "The number of the bank account. For privacy and security, Account numbers that are 6 digits or less: all but the last 2 digits are masked Account numbers that are 7 digits or longer: all but the last 4 digits are masked Account Number masking changes are available in Sandbox companies currently and will be available from July 11th, 2022 for Production companies.",
                    "type": "string"
                  },
                  "accountType": {
                    "description": "The type of bank account. Valid values: PERSONAL_CHECKING : Use for personal checking accounts. PERSONAL_SAVINGS : Use for personal savings accounts. BUSINESS_CHECKING : Use for business checking accounts. BUSINESS_SAVINGS : Use for business savings accounts.",
                    "type": "string"
                  },
                  "bankCode": {
                    "description": "For US : This should also be the routing number for the bank associated with the account.",
                    "type": "string"
                  },
                  "country": {
                    "description": "The ISO-standard country code. Refer to the ISO Country Code List .",
                    "maxLength": 2,
                    "type": "string"
                  },
                  "created": {
                    "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "default": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates if the bank account is the default. When users set a default, the account flag is true . This is the bank account QuickBooks uses when another isn't specified. The flag defaults to false . When a bank account flag is true , all other stored bank accounts are automatically set to false ."
                  },
                  "entityId": {
                    "description": "The ID of the entity the bank account is associated with.",
                    "type": "string"
                  },
                  "entityType": {
                    "description": "The entity or user type the bank account is associated with. Example values: Customer , Employee , Vendor or Company",
                    "type": "string"
                  },
                  "id": {
                    "description": "The unique identifier of a bank account object. The id is required for update or delete operations.",
                    "type": "string"
                  },
                  "inputType": {
                    "description": "Specifies the input type. Valid values: KEYED : Indicates a manually-entered key. SCANNED",
                    "type": "string"
                  },
                  "name": {
                    "description": "The name of the bank account owner.",
                    "maxLength": 64,
                    "type": "string"
                  },
                  "phone": {
                    "description": "The phone number associated with the bank account.",
                    "type": "string"
                  },
                  "routingNumber": {
                    "description": "The routing number for the bank associated with the account. For privacy and security, we only display the last four digits of the routing number.",
                    "type": "string"
                  },
                  "updated": {
                    "description": "The time the object was last updated. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "value": {
                    "description": "The ID of the system generated token. Learn more about the token entity.",
                    "type": "string"
                  }
                },
                "required": [
                  "value"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_bankaccount"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Create a bank account from a token"
      }
    },
    "/quickbooks/v4/customers/{id}/bank-accounts/{bankaccount_id}": {
      "delete": {
        "operationId": "payments/bankaccounts/delete_a_bank_account",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "bankaccount_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_bankaccount"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Delete a bank account"
      },
      "get": {
        "operationId": "payments/bankaccounts/get_details_about_a_bank_account",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "bankaccount_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_bankaccount"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Get details about a bank account"
      }
    },
    "/quickbooks/v4/customers/{id}/cards": {
      "get": {
        "operationId": "payments/cards/get_a_list_of_cards_for_a_specific_customer",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/output_qbpayments_card"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Get a list of cards for a specific customer"
      },
      "post": {
        "operationId": "payments/cards/create_a_card",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "address": {
                    "$ref": "#/components/schemas/qbpayments_address",
                    "description": "The cardholder's full address."
                  },
                  "cardType": {
                    "description": "The type of credit or debit card. Valid values: VISA MC AMEX DISC DINERS JCB",
                    "type": "string"
                  },
                  "commercialCardCode": {
                    "description": "A code that indicates if the card is a commercial or corporate card. This can be used to track specific business purchases.",
                    "maxLength": 25,
                    "type": "string"
                  },
                  "created": {
                    "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "cvc": {
                    "description": "The Card Verification Code (CVC) on the back of the card. This can be up to four digits. The number varies by card provider. For security purposes, the CVC value can't be stored. It must be supplied in transaction requests and then erased.",
                    "type": "string"
                  },
                  "default": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates if the credit or debit card is the default. When users set a default, the flag is true . This is the credit or debit card QuickBooks uses when another isn't specified. The flag defaults to false . When a credit or debit card flag is true, all other cards are automatically set to false."
                  },
                  "entityId": {
                    "description": "The ID of the entity the card is associated with.",
                    "type": "string"
                  },
                  "entityType": {
                    "description": "The entity or user type the card is associated with. Example values: Customer , Employee , Vendor or Company .",
                    "type": "string"
                  },
                  "expMonth": {
                    "description": "The card's two digit expiration month.",
                    "type": "string"
                  },
                  "expYear": {
                    "description": "The card's four digit expiration year.",
                    "type": "string"
                  },
                  "id": {
                    "description": "The unique identifier for the card object.",
                    "type": "string"
                  },
                  "isBusiness": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "This flag is set to true if the credit or debit card is a business card."
                  },
                  "isLevel3Eligible": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Flag set to true if the credit or debit card falls into the L3 eligible Bank Identification Number (BIN) range."
                  },
                  "name": {
                    "description": "The name of the credit or debit card holder, as it appears on the card.",
                    "maxLength": 30,
                    "type": "string"
                  },
                  "number": {
                    "description": "The credit or debit card number.",
                    "type": "string"
                  },
                  "updated": {
                    "description": "The time the object was last updated. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "zeroDollarVerification": {
                    "$ref": "#/components/schemas/qbpayments_zerodollarverification",
                    "description": "Stores card verification information."
                  }
                },
                "required": [
                  "number",
                  "expMonth",
                  "expYear",
                  "cvc"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_card"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Create a card"
      }
    },
    "/quickbooks/v4/customers/{id}/cards/createFromToken": {
      "post": {
        "operationId": "payments/cards/create_a_card_from_a_token",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "address": {
                    "$ref": "#/components/schemas/qbpayments_address",
                    "description": "The cardholder's full address."
                  },
                  "cardType": {
                    "description": "The type of credit or debit card. Valid values: VISA MC AMEX DISC DINERS JCB",
                    "type": "string"
                  },
                  "commercialCardCode": {
                    "description": "A code that indicates if the card is a commercial or corporate card. This can be used to track specific business purchases.",
                    "maxLength": 25,
                    "type": "string"
                  },
                  "created": {
                    "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "cvc": {
                    "description": "The Card Verification Code (CVC) on the back of the card. This can be up to four digits. The number varies by card provider. For security purposes, the CVC value can't be stored. It must be supplied in transaction requests and then erased.",
                    "type": "string"
                  },
                  "default": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Indicates if the credit or debit card is the default. When users set a default, the flag is true . This is the credit or debit card QuickBooks uses when another isn't specified. The flag defaults to false . When a credit or debit card flag is true, all other cards are automatically set to false."
                  },
                  "entityId": {
                    "description": "The ID of the entity the card is associated with.",
                    "type": "string"
                  },
                  "entityType": {
                    "description": "The entity or user type the card is associated with. Example values: Customer , Employee , Vendor or Company .",
                    "type": "string"
                  },
                  "expMonth": {
                    "description": "The card's two digit expiration month.",
                    "type": "string"
                  },
                  "expYear": {
                    "description": "The card's four digit expiration year.",
                    "type": "string"
                  },
                  "id": {
                    "description": "The unique identifier for the card object.",
                    "type": "string"
                  },
                  "isBusiness": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "This flag is set to true if the credit or debit card is a business card."
                  },
                  "isLevel3Eligible": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Flag set to true if the credit or debit card falls into the L3 eligible Bank Identification Number (BIN) range."
                  },
                  "name": {
                    "description": "The name of the credit or debit card holder, as it appears on the card.",
                    "maxLength": 30,
                    "type": "string"
                  },
                  "number": {
                    "description": "The credit or debit card number.",
                    "type": "string"
                  },
                  "updated": {
                    "description": "The time the object was last updated. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "value": {
                    "description": "The ID of the system generated token. Learn more about the token entity.",
                    "type": "string"
                  },
                  "zeroDollarVerification": {
                    "$ref": "#/components/schemas/qbpayments_zerodollarverification",
                    "description": "Stores card verification information."
                  }
                },
                "required": [
                  "value"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_card"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Create a card from a token"
      }
    },
    "/quickbooks/v4/customers/{id}/cards/{card_id}": {
      "delete": {
        "operationId": "payments/cards/delete_a_card",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_card"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Delete a card"
      },
      "get": {
        "operationId": "payments/cards/get_details_about_a_card",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "card_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_card"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Get details about a card"
      }
    },
    "/quickbooks/v4/payments/charges": {
      "post": {
        "operationId": "payments/charges/create_a_charge",
        "parameters": [
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "anyOf": [
                  {
                    "required": [
                      "token"
                    ]
                  },
                  {
                    "required": [
                      "card"
                    ]
                  },
                  {
                    "required": [
                      "cardOnFile"
                    ]
                  }
                ],
                "properties": {
                  "amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Amount of the transaction. Valid values range 0.00 through 99999.99."
                  },
                  "authCode": {
                    "description": "The authorization code for the charge. Note : This is only available for uncaptured charges.",
                    "type": "string"
                  },
                  "avsStreet": {
                    "description": "The address verification service (AVS). This service verifies the street address submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
                    "type": "string"
                  },
                  "avsZip": {
                    "description": "The address verification service (AVS). This service verifies the ZIP code submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
                    "type": "string"
                  },
                  "capture": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Capture flag. Valid values include: true —The charge has been captured. false —The charge is uncaptured and pending authorization."
                  },
                  "captureDetail": {
                    "$ref": "#/components/schemas/qbpayments_captureresponse",
                    "description": "Details about the captured charge. Available for previously authorized charges.",
                    "readOnly": true
                  },
                  "card": {
                    "$ref": "#/components/schemas/qbpayments_card",
                    "description": "Token is preferred in order to avoid PCI compliance requirements. Explicit credit card or debit card details associated with this charge. Required if neither token nor cardOnFile are specified."
                  },
                  "cardOnFile": {
                    "description": "The id for a card that has been previously stored on file. Required if neither token nor card are specified.",
                    "type": "string"
                  },
                  "cardSecurityCodeMatch": {
                    "description": "The 3 or 4 digit card security code number that appears on credit and debit cards. This number is not part of the main credit card number. This field indicates if the security code submitted at the time of the transaction matches what's on file at the cardholder's bank. Valid responses: Pass Fail NotAvailable",
                    "type": "string"
                  },
                  "context": {
                    "$ref": "#/components/schemas/qbpayments_paymentcontext",
                    "description": "Additional data you wish to store for this transaction."
                  },
                  "created": {
                    "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "currency": {
                    "description": "Three-letter ISO 4217 currency code representing the currency in which the charge was made.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Additional text details to be associated with the charge.",
                    "type": "string"
                  },
                  "id": {
                    "description": "The unique identifier for the charge. This is a system-generated alpha-numeric ID.",
                    "type": "string"
                  },
                  "refundDetail": {
                    "items": {
                      "$ref": "#/components/schemas/qbpayments_refundresponse",
                      "description": "Details for one or more refunds applied to this charge."
                    },
                    "type": "array"
                  },
                  "status": {
                    "description": "The status of the charge. Charge athorization and capture are a two part process. Learn more about charge states for the QuickBookls Payments API. Valid values: AUTHORIZED : The card's issuing bank has authorized the cardholder's ability to pay. This ensures the credit or debit card account is in good standing with sufficient funds. DECLINED : The card authorization was declined, rejected by the payment transaction service (PTS), or returned by the payment processor. CAPTURED : The payment is in the second part of the two-step authorization and capture process. CANCELLED : The transaction was cancelled. SETTLED : The payment was successfully funded. The money moved to the seller’s (i.e. merchant’s) bank account. At this point, the charge is complete. REFUNDED : The money successfully transferred back to the buyer (i.e. card holder).",
                    "readOnly": true,
                    "type": "string"
                  },
                  "token": {
                    "description": "Preferred to specifying card or cardOnFile in order to ensure PCI compliance. Opaque representation of the credit card or debit card associated with this charge, as returned by the token endpoint. Applications that access cardholder information using the Payments API are required to follow the payment application data security standard (PA DSS) established by the payment card industry, which specifies how cardholder data must be protected. As such, the token resource provides a programatic way to comply with this standard without having to hold sensitive card information on your own servers.",
                    "type": "string"
                  }
                },
                "required": [
                  "currency",
                  "amount",
                  "context"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_chargeresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Create a charge"
      }
    },
    "/quickbooks/v4/payments/charges/{id}": {
      "get": {
        "operationId": "payments/charges/get_details_about_a_charge",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_chargeresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Get details about a charge"
      }
    },
    "/quickbooks/v4/payments/charges/{id}/capture": {
      "post": {
        "operationId": "payments/charges/capture_a_charge",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 ."
                  },
                  "authCode": {
                    "description": "The authorization code for the charge. Note : This is only available for uncaptured charges.",
                    "type": "string"
                  },
                  "avsStreet": {
                    "description": "The address verification service (AVS). This service verifies the street address submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
                    "type": "string"
                  },
                  "avsZip": {
                    "description": "The address verification service (AVS). This service verifies the ZIP code submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
                    "type": "string"
                  },
                  "capture": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "A flag that indicates if the charge was captured. Valid values: True : The charge was captured False : The charge wasn't captured. It's pending authorization. Defaults to true ."
                  },
                  "captureDetail": {
                    "$ref": "#/components/schemas/qbpayments_captureresponse",
                    "description": "Details about the captured charge. Available for previously authorized charges.",
                    "readOnly": true
                  },
                  "card": {
                    "$ref": "#/components/schemas/qbpayments_card",
                    "description": "The credit or debit card used for the charge. Required if token isn't specified."
                  },
                  "cardSecurityCodeMatch": {
                    "description": "The 3 or 4 digit card security code number that appears on credit and debit cards. This number is not part of the main credit card number. This field indicates if the security code submitted at the time of the transaction matches what's on file at the cardholder's bank. Valid responses: Pass Fail NotAvailable",
                    "type": "string"
                  },
                  "context": {
                    "$ref": "#/components/schemas/qbpayments_paymentcontext",
                    "description": "Additional data you want to store with the transaction."
                  },
                  "created": {
                    "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "currency": {
                    "description": "The 3-letter ISO 4217 compliant currency code, which defines the currency for the charge.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Text info you want to store with the transaction.",
                    "type": "string"
                  },
                  "id": {
                    "description": "The unique identifier for the charge. This is a system-generated alpha-numeric ID.",
                    "type": "string"
                  },
                  "refundDetail": {
                    "items": {
                      "$ref": "#/components/schemas/qbpayments_refundresponse",
                      "description": "Details for one or more refunds applied to this charge."
                    },
                    "type": "array"
                  },
                  "status": {
                    "description": "The status of the charge. Charge athorization and capture are a two part process. Learn more about charge states for the QuickBookls Payments API. Valid values: AUTHORIZED : The card's issuing bank has authorized the cardholder's ability to pay. This ensures the credit or debit card account is in good standing with sufficient funds. DECLINED : The card authorization was declined, rejected by the payment transaction service (PTS), or returned by the payment processor. CAPTURED : The payment is in the second part of the two-step authorization and capture process. CANCELLED : The transaction was cancelled. SETTLED : The payment was successfully funded. The money moved to the seller’s (i.e. merchant’s) bank account. At this point, the charge is complete. REFUNDED : The money successfully transferred back to the buyer (i.e. card holder).",
                    "readOnly": true,
                    "type": "string"
                  },
                  "token": {
                    "description": "The opaque container for the credit or debit card account associated with the transaction. Required if the card isn't specified. Tokens are preferred to directly specifying a card or cardOnFile to comply with PCI standards. Learn more about creating tokens.",
                    "type": "string"
                  }
                },
                "required": [
                  "amount"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_chargeresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Capture a charge"
      }
    },
    "/quickbooks/v4/payments/charges/{id}/refunds": {
      "post": {
        "operationId": "payments/charges/refund_a_charge",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The transaction amount. Valid values: Any value between 0.01 and 99999.99 ."
                  },
                  "authCode": {
                    "description": "The authorization code for the charge. Note : This is only available for uncaptured charges.",
                    "type": "string"
                  },
                  "avsStreet": {
                    "description": "The address verification service (AVS). This service verifies the street address submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
                    "type": "string"
                  },
                  "avsZip": {
                    "description": "The address verification service (AVS). This service verifies the ZIP code submitted by the customer for their credit or debit card. AVS compares the ZIP code submitted at the time of the transaction with what's on file at the cardholder's bank. AVS is supported by most US banks and some international banks. Valid responses: Pass Fail NotAvailable",
                    "type": "string"
                  },
                  "capture": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "A flag that indicates if the charge was captured. Valid values: True : The charge was captured False : The charge wasn't captured. It's pending authorization. Defaults to true ."
                  },
                  "captureDetail": {
                    "$ref": "#/components/schemas/qbpayments_captureresponse",
                    "description": "Details about the captured charge. Available for previously authorized charges.",
                    "readOnly": true
                  },
                  "card": {
                    "$ref": "#/components/schemas/qbpayments_card",
                    "description": "The credit or debit card used for the charge. Required if token isn't specified."
                  },
                  "cardSecurityCodeMatch": {
                    "description": "The 3 or 4 digit card security code number that appears on credit and debit cards. This number is not part of the main credit card number. This field indicates if the security code submitted at the time of the transaction matches what's on file at the cardholder's bank. Valid responses: Pass Fail NotAvailable",
                    "type": "string"
                  },
                  "context": {
                    "$ref": "#/components/schemas/qbpayments_paymentcontext",
                    "description": "Additional data you wish to store for this transaction."
                  },
                  "created": {
                    "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "currency": {
                    "description": "The 3-letter ISO 4217 compliant currency code, which defines the currency for the charge.",
                    "type": "string"
                  },
                  "description": {
                    "description": "Text info you want to store with the transaction.",
                    "type": "string"
                  },
                  "id": {
                    "description": "The unique identifier for the charge. This is a system-generated alpha-numeric ID.",
                    "type": "string"
                  },
                  "refundDetail": {
                    "items": {
                      "$ref": "#/components/schemas/qbpayments_refundresponse",
                      "description": "Details for one or more refunds applied to this charge."
                    },
                    "type": "array"
                  },
                  "status": {
                    "description": "The status of the charge. Charge athorization and capture are a two part process. Learn more about charge states for the QuickBookls Payments API. Valid values: AUTHORIZED : The card's issuing bank has authorized the cardholder's ability to pay. This ensures the credit or debit card account is in good standing with sufficient funds. DECLINED : The card authorization was declined, rejected by the payment transaction service (PTS), or returned by the payment processor. CAPTURED : The payment is in the second part of the two-step authorization and capture process. CANCELLED : The transaction was cancelled. SETTLED : The payment was successfully funded. The money moved to the seller’s (i.e. merchant’s) bank account. At this point, the charge is complete. REFUNDED : The money successfully transferred back to the buyer (i.e. card holder).",
                    "readOnly": true,
                    "type": "string"
                  },
                  "token": {
                    "description": "The opaque container for the credit or debit card account associated with the transaction. Required if the card isn't specified. Tokens are preferred to directly specifying a card or cardOnFile to comply with PCI standards. Learn more about creating tokens.",
                    "type": "string"
                  }
                },
                "required": [
                  "amount"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_chargeresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Refund a charge"
      }
    },
    "/quickbooks/v4/payments/charges/{id}/refunds/{refund_id}": {
      "get": {
        "operationId": "payments/charges/get_a_refund_by_id",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "refund_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_chargeresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Get a refund by ID"
      }
    },
    "/quickbooks/v4/payments/echecks": {
      "post": {
        "operationId": "payments/echecks/create_an_e_check",
        "parameters": [
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "Amount of the transaction. Valid values for amount are in the range 0.00 through 99999.99 ."
                  },
                  "authCode": {
                    "description": "The authorization code for the echeck.",
                    "type": "string"
                  },
                  "bankAccount": {
                    "$ref": "#/components/schemas/qbpayments_bankaccountrequest"
                  },
                  "bankAccountOnFile": {
                    "description": "The bank account details that have been previously stored on file. Required if neither token nor bankAccount are specified",
                    "type": "string"
                  },
                  "checkNumber": {
                    "description": "The number for the echeck, if desired.",
                    "type": "string"
                  },
                  "context": {
                    "$ref": "#/components/schemas/qbpayments_checkcontext",
                    "description": "Additional data that may be stored with the transaction."
                  },
                  "created": {
                    "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "description": {
                    "description": "Descriptive text to be stored with the transaction.",
                    "maxLength": 4000,
                    "type": "string"
                  },
                  "id": {
                    "description": "The unique identifier for the eCheck.",
                    "type": "string"
                  },
                  "paymentMode": {
                    "description": "The payment mode. This is also known as the SEC Code. Valid options include: WEB : Internet-initiated entry mode, used for internet transactions.",
                    "type": "string"
                  },
                  "status": {
                    "description": "The current status of the check. Learn more about check states . Valid values types: PENDING : The check is being processed. SUCCEEDED : The check was funded and the transaction is complete. DECLINED : The check was rejected. VOIDED : The check was voided. REFUNDED : The check was refunded.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "token": {
                    "description": "An opaque representation of the bank account associated with the debit, as returned by the token endpoint. Required if neither bankAccount nor bankAccountOnFile are specified",
                    "type": "string"
                  }
                },
                "required": [
                  "paymentMode",
                  "amount"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_echeckresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Create an eCheck"
      }
    },
    "/quickbooks/v4/payments/echecks/{echeck_id}": {
      "get": {
        "operationId": "payments/echecks/get_e_check_details",
        "parameters": [
          {
            "in": "path",
            "name": "echeck_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "id",
            "required": false,
            "schema": {
              "description": "The id of the eCheck. The ID is defined in the response of the CREATE check operation.",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_echeckresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Get eCheck details"
      }
    },
    "/quickbooks/v4/payments/echecks/{echeck_id}/refunds": {
      "post": {
        "operationId": "payments/echecks/void_or_refund_an_e_check",
        "parameters": [
          {
            "in": "path",
            "name": "echeck_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "id",
            "required": false,
            "schema": {
              "description": "The id of the eCheck. The ID is defined in the response of the CREATE check operation.",
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "amount": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The amount to be refunded. Valid values: Any value between 0.01 and 99999.99 ."
                  },
                  "authCode": {
                    "description": "The authorization code for the echeck.",
                    "type": "string"
                  },
                  "bankAccount": {
                    "$ref": "#/components/schemas/qbpayments_bankaccount"
                  },
                  "bankAccountOnFile": {
                    "description": "An existing bank account that was previously stored. Specify the ID of the existing bank account. Required if the token or bankAccount aren't specified.",
                    "type": "string"
                  },
                  "checkNumber": {
                    "description": "The number of the eCheck associated with the transaction. This number must be unique. Using the same checkNumber to create multiple eChecks will result in declines.",
                    "type": "string"
                  },
                  "context": {
                    "$ref": "#/components/schemas/qbpayments_checkcontext",
                    "description": "Additional info that will be stored with the transaction."
                  },
                  "created": {
                    "description": "The time the object was originally created. In ISO 8601 date-time format. It appears as YYYY-MM-DDTHH:MM:SSZ .",
                    "readOnly": true,
                    "type": "string"
                  },
                  "description": {
                    "description": "A description of the refund.",
                    "maxLength": 4000,
                    "type": "string"
                  },
                  "id": {
                    "description": "The unique identifier for the eCheck.",
                    "type": "string"
                  },
                  "paymentMode": {
                    "description": "The payment mode. This is also known as the SEC Code. Valid values: WEB : Internet-initiated entry mode used for internet transactions.",
                    "type": "string"
                  },
                  "status": {
                    "description": "The current status of the check. Learn more about check states . Valid values types: PENDING : The check is being processed. SUCCEEDED : The check was funded and the transaction is complete. DECLINED : The check was rejected. VOIDED : The check was voided. REFUNDED : The check was refunded.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "token": {
                    "description": "The opaque container for the credit or debit card account associated with the transaction. Required if the bankAccount or bankAccountOnFile aren't specified. Learn more about creating tokens.",
                    "type": "string"
                  }
                },
                "required": [
                  "amount"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_echeckresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Void or refund an eCheck"
      }
    },
    "/quickbooks/v4/payments/echecks/{echeck_id}/refunds/{refund_id}": {
      "get": {
        "operationId": "payments/echecks/get_e_check_refund_details",
        "parameters": [
          {
            "in": "path",
            "name": "echeck_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "refund_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_echeckresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Get eCheck refund details"
      }
    },
    "/quickbooks/v4/payments/receipt/{client_trans_id}": {
      "get": {
        "operationId": "payments/paymentreceipt/get_a_payment_receipt",
        "parameters": [
          {
            "in": "path",
            "name": "client_trans_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Get a payment receipt"
      }
    },
    "/quickbooks/v4/payments/tokens": {
      "post": {
        "operationId": "payments/tokens/create_a_token/standard",
        "parameters": [
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "bankAccount": {
                    "$ref": "#/components/schemas/qbpayments_bankaccount",
                    "description": "The bank account associated with this charge. Required if a card isn't specified."
                  },
                  "card": {
                    "$ref": "#/components/schemas/qbpayments_card",
                    "description": "The credit card associated with the token. Required if a bankAccount isn't specified."
                  },
                  "value": {
                    "description": "The ID of the system generated token. Learn more about the token entity.",
                    "type": "string"
                  }
                },
                "required": [],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_token"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Create a token"
      }
    },
    "/quickbooks/v4/payments/tokens/ie": {
      "post": {
        "operationId": "payments/tokens/create_a_token/ie",
        "parameters": [
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "bankAccount": {
                    "$ref": "#/components/schemas/qbpayments_bankaccount",
                    "description": "The bank account associated with this charge. Required if a card isn't specified."
                  },
                  "card": {
                    "$ref": "#/components/schemas/qbpayments_card",
                    "description": "The credit card associated with the token. Required if a bankAccount isn't specified."
                  },
                  "value": {
                    "description": "The ID of the system generated token. Learn more about the token entity.",
                    "type": "string"
                  }
                },
                "required": [],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_token"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Create a token"
      }
    },
    "/quickbooks/v4/payments/txn-requests/{charge_request_id}/void": {
      "post": {
        "operationId": "payments/charges/void_a_charge",
        "parameters": [
          {
            "in": "path",
            "name": "charge_request_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "header",
            "name": "request-Id",
            "required": true,
            "schema": {
              "description": "The request-Id that uniquely identifies the HTTP request sent by your app to the server. This lets apps correlate requests and responses in case it needs to resend a request due to a dropped connection.",
              "maxLength": 50,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbpayments_txnrequestresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox.api.intuit.com"
          }
        ],
        "summary": "Void a charge"
      }
    },
    "/v3/company/{realmID}/attachable": {
      "post": {
        "operationId": "attachable/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AttachableRef": {
                        "description": "Specifies the transaction object to which this attachable file is to be linked.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_attachableref"
                        },
                        "type": "array"
                      },
                      "Category": {
                        "description": "Category of the attachment. Valid values include (case sensitive): Contact Photo , Document , Image , Receipt , Signature , Sound , Other .",
                        "type": "string"
                      },
                      "ContentType": {
                        "description": "ContentType of the attachment. Returned for file attachments.",
                        "type": "string"
                      },
                      "FileAccessUri": {
                        "description": "FullPath FileAccess URI of the attachment. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "FileName": {
                        "description": "FileName of the attachment. Required for file attachments.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Lat": {
                        "description": "Latitude from where the attachment was requested.",
                        "type": "string"
                      },
                      "Long": {
                        "description": "Longitude from where the attachment was requested.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Note": {
                        "description": "This note is either related to the attachment specified by FileName or is a standalone note. Required for standalone notes.",
                        "type": "string"
                      },
                      "PlaceName": {
                        "description": "PlaceName from where the attachment was requested.",
                        "type": "string"
                      },
                      "Size": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Size of the attachment. Returned for file attachments.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "Tag": {
                        "description": "Tag name for the requested attachment.",
                        "type": "string"
                      },
                      "TempDownloadUri": {
                        "description": "TempDownload URI which can be directly downloaded by clients. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "ThumbnailFileAccessUri": {
                        "description": "FullPath FileAccess URI of the attachment thumbnail if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "ThumbnailTempDownloadUri": {
                        "description": "Thumbnail TempDownload URI which can be directly downloaded by clients. This is only available if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AttachableRef": {
                        "description": "Specifies the transaction object to which this attachable file is to be linked.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_attachableref"
                        },
                        "type": "array"
                      },
                      "Category": {
                        "description": "Category of the attachment. Valid values include (case sensitive): Contact Photo , Document , Image , Receipt , Signature , Sound , Other .",
                        "type": "string"
                      },
                      "ContentType": {
                        "description": "ContentType of the attachment. Returned for file attachments.",
                        "type": "string"
                      },
                      "FileAccessUri": {
                        "description": "FullPath FileAccess URI of the attachment. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "FileName": {
                        "description": "FileName of the attachment. Required for file attachments.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Lat": {
                        "description": "Latitude from where the attachment was requested.",
                        "type": "string"
                      },
                      "Long": {
                        "description": "Longitude from where the attachment was requested.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Note": {
                        "description": "The note is either related to the attachment specified with the FileName attribute, or as a standalone note. Required for note attachments.",
                        "type": "string"
                      },
                      "PlaceName": {
                        "description": "PlaceName from where the attachment was requested.",
                        "type": "string"
                      },
                      "Size": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Size of the attachment. Returned for file attachments.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Tag": {
                        "description": "Tag name for the requested attachment.",
                        "type": "string"
                      },
                      "TempDownloadUri": {
                        "description": "TempDownload URI which can be directly downloaded by clients. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "ThumbnailFileAccessUri": {
                        "description": "FullPath FileAccess URI of the attachment thumbnail if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "ThumbnailTempDownloadUri": {
                        "description": "Thumbnail TempDownload URI which can be directly downloaded by clients. This is only available if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Attachable": {
                      "$ref": "#/components/schemas/output_qbo_attachableresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete an attachable"
      }
    },
    "/v3/company/{realmID}/attachable/{attachableId}": {
      "get": {
        "operationId": "attachable/read_an_attachable",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "attachableId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Attachable": {
                      "$ref": "#/components/schemas/output_qbo_attachableresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read an attachable"
      }
    },
    "/v3/company/{realmID}/billpayment": {
      "post": {
        "operationId": "billpayment/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "const": "delete",
                  "type": "string"
                },
                {
                  "const": "update",
                  "type": "string"
                }
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "CheckPayment": {
                        "$ref": "#/components/schemas/qbo_billpaymentcheck",
                        "description": "Information about a check payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is Check ."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_billpaymentcreditcard",
                        "description": "Information about a credit card payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is CreditCard ."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .Required if multicurrency is enabled for the company"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items representing zero or more Bill , VendorCredit , and JournalEntry objects linked to this BillPayment object. Use Line.LinkedTxn.TxnId as the ID in a separate Bill, VendorCredit, or JournalEntry read request to retrieve details of the linked object. LinkedTxnLine:",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linelinkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PayType": {
                        "description": "The payment type. Valid values include: Check , CreditCard",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the form.",
                        "type": "string"
                      },
                      "ProcessBillPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates that the payment should be processed by merchant account service. Valid for QuickBooks companies with credit card processing."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount associated with this payment. This includes the total of all the payments from the payment line details. If TotalAmt is greater than the total on the lines being paid, the overpayment is treated as a credit and exposed as such on the QuickBooks UI. It cannot be negative."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "CheckPayment": {
                        "$ref": "#/components/schemas/qbo_billpaymentcheck",
                        "description": "Reference to the vendor for this transaction. Required when PayType is Check ."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_billpaymentcreditcard",
                        "description": "Information about a credit card payment for the transaction. Not applicable to Estimate and SalesOrder. Required when PayType is CreditCard ."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "Id": {
                        "description": "Unique Identifier for an Intuit entity (object).",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items representing zero or more Bill , VendorCredit , and JournalEntry objects linked to this BillPayment object. Valid Line types include: LinkedTxnLine:",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linelinkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PayType": {
                        "description": "The payment type. Valid values include: Check , CreditCard",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the form.",
                        "type": "string"
                      },
                      "ProcessBillPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates that the payment should be processed by merchant account service. Valid for QuickBooks companies with credit card processing."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the associated with this payment. This includes the total of all the payments from the BillPayment Details."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "VendorRef",
                      "TotalAmt",
                      "Line",
                      "PayType"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "CheckPayment": {
                        "$ref": "#/components/schemas/qbo_billpaymentcheck",
                        "description": "Information about a check payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is Check ."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_billpaymentcreditcard",
                        "description": "Information about a credit card payment for the transaction. Not applicable to Estimate and SalesOrder. Used when PayType is CreditCard ."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .Required if multicurrency is enabled for the company"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items representing zero or more Bill , VendorCredit , and JournalEntry objects linked to this BillPayment object. Use Line.LinkedTxn.TxnId as the ID in a separate Bill, VendorCredit, or JournalEntry read request to retrieve details of the linked object. LinkedTxnLine:",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linelinkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PayType": {
                        "description": "The payment type. Valid values include: Check , CreditCard",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the form.",
                        "type": "string"
                      },
                      "ProcessBillPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates that the payment should be processed by merchant account service. Valid for QuickBooks companies with credit card processing."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount associated with this payment. This includes the total of all the payments from the payment line details. If TotalAmt is greater than the total on the lines being paid, the overpayment is treated as a credit and exposed as such on the QuickBooks UI. It cannot be negative."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "BillPayment": {
                      "$ref": "#/components/schemas/output_qbo_billpaymentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a billpayment"
      }
    },
    "/v3/company/{realmID}/billpayment/{billpaymentId}": {
      "get": {
        "operationId": "billpayment/read_a_billpayment",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "billpaymentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "BillPayment": {
                      "$ref": "#/components/schemas/output_qbo_billpaymentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a billpayment"
      }
    },
    "/v3/company/{realmID}/budget": {
      "post": {
        "operationId": "budget/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                      },
                      "BudgetDetail": {
                        "description": "Container for the budget items.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_budgetdetail"
                        },
                        "type": "array"
                      },
                      "BudgetEntryType": {
                        "description": "Period that this budget detail covers.. Valid values include: Monthly , Quarterly , Annually .",
                        "readOnly": true,
                        "type": "string"
                      },
                      "BudgetType": {
                        "description": "Budget types. The only value currently supported is ProfitAndLoss .",
                        "readOnly": true,
                        "type": "string"
                      },
                      "CustomExtensions": {
                        "$ref": "#/components/schemas/qbo_customextensions",
                        "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                      },
                      "EndDate": {
                        "description": "Budget end date.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                        "readOnly": true,
                        "type": "string"
                      },
                      "StartDate": {
                        "description": "Budget begin date.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                      },
                      "BudgetDetail": {
                        "description": "Container for the budget items.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_budgetdetail"
                        },
                        "type": "array"
                      },
                      "BudgetEntryType": {
                        "description": "Period that this budget detail covers.. Valid values include: Monthly , Quarterly , Annually .",
                        "readOnly": true,
                        "type": "string"
                      },
                      "BudgetType": {
                        "description": "Budget types. The only value currently supported is ProfitAndLoss .",
                        "readOnly": true,
                        "type": "string"
                      },
                      "CustomExtensions": {
                        "$ref": "#/components/schemas/qbo_customextensions",
                        "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                      },
                      "EndDate": {
                        "description": "Budget end date.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                        "readOnly": true,
                        "type": "string"
                      },
                      "StartDate": {
                        "description": "Budget begin date.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "EndDate",
                      "StartDate"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                      },
                      "BudgetDetail": {
                        "description": "Container for the budget items.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_budgetdetail"
                        },
                        "type": "array"
                      },
                      "BudgetEntryType": {
                        "description": "Period that this budget detail covers.. Valid values include: Monthly , Quarterly , Annually .",
                        "readOnly": true,
                        "type": "string"
                      },
                      "BudgetType": {
                        "description": "Budget types. The only value currently supported is ProfitAndLoss .",
                        "readOnly": true,
                        "type": "string"
                      },
                      "CustomExtensions": {
                        "$ref": "#/components/schemas/qbo_customextensions",
                        "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                      },
                      "EndDate": {
                        "description": "Budget end date.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                        "readOnly": true,
                        "type": "string"
                      },
                      "StartDate": {
                        "description": "Budget begin date.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "additionalProperties": true,
                      "properties": {
                        "Budget": {
                          "$ref": "#/components/schemas/output_qbo_budgetresponse"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a budget"
      }
    },
    "/v3/company/{realmID}/budget/{budgetId}": {
      "get": {
        "operationId": "budget/read_a_budget",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "budgetId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Budget": {
                      "$ref": "#/components/schemas/output_qbo_budgetresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a budget"
      }
    },
    "/v3/company/{realmID}/cdc": {
      "get": {
        "operationId": "changedatacapture/get_a_list_of_changed_entities",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "changedSince",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "entities",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CDCResponse": {
                      "items": {
                        "additionalProperties": true,
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Get a list of changed entities"
      }
    },
    "/v3/company/{realmID}/changeorder": {
      "post": {
        "operationId": "changeorder/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AcceptedBy": {
                        "description": "Name of the customer or representative who accepted the change order. Populated when TxnStatus is set to Accepted .",
                        "type": "string"
                      },
                      "AcceptedDate": {
                        "description": "Date the change order was accepted. Populated when TxnStatus is set to Accepted .",
                        "type": "string"
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, sales tax is calculated first and then any discount is applied. If true , the discount is subtracted first and then sales tax is calculated."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Email address where the change order is sent. Required when EmailStatus is set to NeedToSend ."
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; visible on the Change Order document sent to the customer."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Use Customer.Id and Customer.DisplayName from the Customer object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the change order (for example, CO-001 ). If not provided, the value is null.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the change order. Valid values: NotSet , NeedToSend , EmailSent .",
                        "type": "string"
                      },
                      "ExpirationDate": {
                        "description": "Date by which the change order must be accepted before it expires.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items describing the work being added or removed. Supports SalesItemLineDetail and SubTotalLineDetail line types. Every line must include a LinkedTxn array referencing the parent project estimate with TxnType: \"Estimate\" . All lines must reference the same parent estimate. The Line array uses full-replace behavior on update — lines omitted from an update request are deleted.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "One or more linked transaction references at the header level, reflecting the parent project estimate. Also appears on each line item. Use LinkedTxn.TxnId as the ID in a separate Estimate read request to retrieve details of the linked object. TxnType must always be Estimate .",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "Organization-private note about the change order. This note does not appear on documents sent to the customer.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the project this change order belongs to. Must reference an active project. Without a valid ProjectRef , the change order will not appear in the Projects dashboard."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction including all line charges and taxes. Calculated by QuickBooks business logic from the sum of all line Amount values plus applicable tax. Do not include in create or update request bodies; any value supplied is overwritten.",
                        "readOnly": true
                      },
                      "TotalCostAmount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total cost amount of the transaction, calculated from the sum of all line CostAmount values. Calculated by QuickBooks business logic; any value supplied is overwritten.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnStatus": {
                        "description": "Current status of the change order. Valid values: Pending (default — created but not yet reviewed), Accepted (customer approved; project contracted total increases accordingly), Closed (converted to an Invoice or manually closed), Rejected (customer declined; does not affect project total).",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "Tax details for the transaction. Captures sales taxes calculated based on tax codes referenced by the transaction lines."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AcceptedBy": {
                        "description": "Name of the customer or representative who accepted the change order. Populated when TxnStatus is set to Accepted .",
                        "type": "string"
                      },
                      "AcceptedDate": {
                        "description": "Date the change order was accepted. Populated when TxnStatus is set to Accepted .",
                        "type": "string"
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, sales tax is calculated first and then any discount is applied. If true , the discount is subtracted first and then sales tax is calculated."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Email address where the change order is sent. Required when EmailStatus is set to NeedToSend ."
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; visible on the Change Order document sent to the customer."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the change order (for example, CO-001 ). If not provided, the value is null.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the change order. Valid values: NotSet , NeedToSend , EmailSent .",
                        "type": "string"
                      },
                      "ExpirationDate": {
                        "description": "Date by which the change order must be accepted before it expires.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items describing the work being added or removed. Each line must include a LinkedTxn array referencing the parent project estimate with TxnType: \"Estimate\" . All lines must reference the same parent estimate. Supports SalesItemLineDetail line type.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_salesitemline"
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "One or more linked transaction references at the header level, reflecting the parent project estimate. Also appears on each line item. Use LinkedTxn.TxnId as the ID in a separate Estimate read request to retrieve details of the linked object. TxnType must always be Estimate .",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "Organization-private note about the change order. This note does not appear on documents sent to the customer.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the project this change order belongs to. The project must be active. Without a valid ProjectRef , the change order will not appear in the Projects dashboard."
                      },
                      "SyncToken": {
                        "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 fail. Only the latest version of the object is maintained by QuickBooks Online.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction including all line charges and taxes. Calculated by QuickBooks business logic from the sum of all line Amount values plus applicable tax. Do not include in create or update request bodies; any value supplied is overwritten.",
                        "readOnly": true
                      },
                      "TotalCostAmount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total cost amount of the transaction, calculated from the sum of all line CostAmount values. Calculated by QuickBooks business logic; any value supplied is overwritten.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. If not supplied, the current date on the server is used.",
                        "type": "string"
                      },
                      "TxnStatus": {
                        "description": "Current status of the change order. Valid values: Pending , Accepted , Closed , Rejected .",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "Tax details for the transaction. Captures sales taxes calculated based on tax codes referenced by the transaction lines."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "ProjectRef",
                      "Line",
                      "CustomerRef"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AcceptedBy": {
                        "description": "Name of the customer or representative who accepted the change order. Populated when TxnStatus is set to Accepted .",
                        "type": "string"
                      },
                      "AcceptedDate": {
                        "description": "Date the change order was accepted. Populated when TxnStatus is set to Accepted .",
                        "type": "string"
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, sales tax is calculated first and then any discount is applied. If true , the discount is subtracted first and then sales tax is calculated."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Email address where the change order is sent. Required when EmailStatus is set to NeedToSend ."
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; visible on the Change Order document sent to the customer."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the customer associated with this change order. Must match the customer on the parent project estimate. Use Customer.Id and Customer.DisplayName from the Customer object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the change order (for example, CO-001 ). If not provided, the value is null.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the change order. Valid values: NotSet , NeedToSend , EmailSent .",
                        "type": "string"
                      },
                      "ExpirationDate": {
                        "description": "Date by which the change order must be accepted before it expires.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items describing the work being added or removed. Supports SalesItemLineDetail and SubTotalLineDetail line types. Every line must include a LinkedTxn array referencing the parent project estimate with TxnType: \"Estimate\" . All lines must reference the same parent estimate. The Line array uses full-replace behavior on update — lines omitted from an update request are deleted.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "One or more linked transaction references at the header level, reflecting the parent project estimate. Also appears on each line item. Use LinkedTxn.TxnId as the ID in a separate Estimate read request to retrieve details of the linked object. TxnType must always be Estimate .",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the change order. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "Organization-private note about the change order. This note does not appear on documents sent to the customer.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the project this change order belongs to. Must reference an active project. Without a valid ProjectRef , the change order will not appear in the Projects dashboard."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction including all line charges and taxes. Calculated by QuickBooks business logic from the sum of all line Amount values plus applicable tax. Do not include in create or update request bodies; any value supplied is overwritten.",
                        "readOnly": true
                      },
                      "TotalCostAmount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total cost amount of the transaction, calculated from the sum of all line CostAmount values. Calculated by QuickBooks business logic; any value supplied is overwritten.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnStatus": {
                        "description": "Current status of the change order. Valid values: Pending (default — created but not yet reviewed), Accepted (customer approved; project contracted total increases accordingly), Closed (converted to an Invoice or manually closed), Rejected (customer declined; does not affect project total).",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "Tax details for the transaction. Captures sales taxes calculated based on tax codes referenced by the transaction lines."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "ChangeOrder": {
                      "$ref": "#/components/schemas/output_qbo_changeorderresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a change order"
      }
    },
    "/v3/company/{realmID}/changeorder/{changeorderId}": {
      "get": {
        "operationId": "changeorder/read_a_change_order",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "changeorderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "ChangeOrder": {
                      "$ref": "#/components/schemas/output_qbo_changeorderresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a change order"
      }
    },
    "/v3/company/{realmID}/class": {
      "post": {
        "operationId": "class/create_a_class",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub class separated by colons. Takes the form of Parent:Class1:SubClass1:SubClass2 . Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the Class.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "For class objects that are sub-classes: the immediate parent of this object. Required if this object is a subclass."
                      },
                      "SubClass": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies whether this object is a subclass. true --this object represents a subclass. false or null--this object represents a top-level class."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Name"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub class separated by colons. Takes the form of Parent:Class1:SubClass1:SubClass2 . Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the Class.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The immediate parent of the SubClass. Required if this object is a subclass."
                      },
                      "SubClass": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies whether this object is a subclass. true --this object represents a subclass. false or null--this object represents a top-level class."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Class": {
                      "$ref": "#/components/schemas/output_qbo_classresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a class / Full update a class"
      }
    },
    "/v3/company/{realmID}/class/{classId}": {
      "get": {
        "operationId": "class/read_a_class",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "classId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Class": {
                      "$ref": "#/components/schemas/output_qbo_classresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a class"
      }
    },
    "/v3/company/{realmID}/companycurrency": {
      "post": {
        "operationId": "companycurrency/create_a_companycurrency",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates whether this currency is active in the company or not. true --This currency is active and enabled for use by QuickBooks. false --This currency is inactive, is hidden from most display purposes, and is not availble for use with financial transactions."
                      },
                      "Code": {
                        "description": "A three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on.",
                        "type": "string"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "The full name of the currency.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Code"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates whether this currency is active in the company or not. true --This currency is active and enabled for use by QuickBooks. false --This currency is inactive, is hidden from most display purposes, and is not availble for use with financial transactions."
                      },
                      "Code": {
                        "description": "A three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. Click here for a list of supported currency codes.",
                        "type": "string"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "The full name of the currency.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CompanyCurrency": {
                      "$ref": "#/components/schemas/output_qbo_companycurrencyresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a companycurrency / Update a companycurrency"
      }
    },
    "/v3/company/{realmID}/companycurrency/{companycurrencyId}": {
      "get": {
        "operationId": "companycurrency/read_a_companycurrency",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "companycurrencyId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CompanyCurrency": {
                      "$ref": "#/components/schemas/output_qbo_companycurrencyresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a companycurrency"
      }
    },
    "/v3/company/{realmID}/companyinfo": {
      "post": {
        "operationId": "companyinfo/full_update_companyinfo",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "CompanyAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Company Address as described in preference. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "CompanyName": {
                        "description": "The name of the company.",
                        "type": "string"
                      },
                      "CompanyStartDate": {
                        "description": "DateTime when company file was created. This field and Metadata.CreateTime contain the same value.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Country": {
                        "description": "Country name to which the company belongs for financial calculations.",
                        "type": "string"
                      },
                      "CustomerCommunicationAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address of the company as given to their customer, sometimes the address given to the customer mail address is different from Company address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "Email": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Default email address."
                      },
                      "EmployerId": {
                        "description": "If your QuickBooks company has defined an EIN in company settings, this value is returned.",
                        "type": "string"
                      },
                      "FiscalYearStartMonth": {
                        "description": "The start month of fiscal year.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "LegalAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Legal Address given to the government for any government communication. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "LegalName": {
                        "description": "The legal name of the company.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "NameValue": {
                        "description": "Any other preference not covered with the standard set of attributes. See Data Services Extensions, below, for special reserved name/value pairs. NameValue.Name--Name of the element. NameValue.Value--Value of the element.",
                        "items": {
                          "additionalProperties": true,
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "PrimaryPhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber",
                        "description": "Primary phone number."
                      },
                      "SupportedLanguages": {
                        "description": "Comma separated list of languages.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "WebAddr": {
                        "$ref": "#/components/schemas/qbo_websiteaddress",
                        "description": "Website address."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "CompanyAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Company Address as described in preference. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "CompanyName": {
                        "description": "The name of the company.",
                        "type": "string"
                      },
                      "CompanyStartDate": {
                        "description": "DateTime when company file was created. This field and Metadata.CreateTime contain the same value.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Country": {
                        "description": "Country name to which the company belongs for financial calculations.",
                        "type": "string"
                      },
                      "CustomerCommunicationAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address of the company as given to their customer, sometimes the address given to the customer mail address is different from Company address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "Email": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Default email address."
                      },
                      "EmployerId": {
                        "description": "If your QuickBooks company has defined an EIN in company settings, this value is returned.",
                        "type": "string"
                      },
                      "FiscalYearStartMonth": {
                        "description": "The start month of fiscal year.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "LegalAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Legal Address given to the government for any government communication. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "LegalName": {
                        "description": "The legal name of the company.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "NameValue": {
                        "description": "Any other preference not covered with the standard set of attributes. See Data Services Extensions, below, for special reserved name/value pairs. NameValue.Name--Name of the element. NameValue.Value--Value of the element.",
                        "items": {
                          "additionalProperties": true,
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "PrimaryPhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber",
                        "description": "Primary phone number."
                      },
                      "SupportedLanguages": {
                        "description": "Comma separated list of languages.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "WebAddr": {
                        "$ref": "#/components/schemas/qbo_websiteaddress",
                        "description": "Website address."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CompanyInfo": {
                      "$ref": "#/components/schemas/output_qbo_companyinforesponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Full update companyinfo / Sparse update companyinfo"
      }
    },
    "/v3/company/{realmID}/creditcardpayment": {
      "post": {
        "operationId": "creditcardpayment/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Amount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction."
                      },
                      "BankAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the bank account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference."
                      },
                      "CheckNum": {
                        "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "CreditCardAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the credit card account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference."
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Memo": {
                        "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Amount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the payment. Denominated in the currency of the credit card account."
                      },
                      "BankAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Bank account used to pay the Credit Card balance. Must be a Bank account."
                      },
                      "CheckNum": {
                        "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "CreditCardAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Credit Card account for which a payment is being entered. Must be a Credit Card account."
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Memo": {
                        "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "Date of transaction.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "TxnDate",
                      "Amount",
                      "BankAccountRef",
                      "CreditCardAccountRef"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Amount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the payment. Denominated in the currency of the credit card account."
                      },
                      "BankAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Bank account used to pay the Credit Card balance. Must be a Bank account."
                      },
                      "CheckNum": {
                        "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "CreditCardAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Credit Card account for which a payment is being entered. Must be a Credit Card account."
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Memo": {
                        "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "Date of transaction.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Amount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the payment. Denominated in the currency of the credit card account."
                      },
                      "BankAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Bank account used to pay the Credit Card balance. Must be a Bank account."
                      },
                      "CheckNum": {
                        "description": "User entered, Check number. This field maps to the Check no. field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "CreditCardAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Credit Card account for which a payment is being entered. Must be a Credit Card account."
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Memo": {
                        "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the credit-card-payment. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This field maps to the Memo field on the Pay down credit card form.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "Date of transaction.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CreditCardPayment": {
                      "$ref": "#/components/schemas/output_qbo_creditcardpaymentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a creditcardpayment"
      }
    },
    "/v3/company/{realmID}/creditcardpayment/{creditcardpaymentId}": {
      "get": {
        "operationId": "creditcardpayment/read_a_creditcardpayment",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "creditcardpaymentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CreditCardPayment": {
                      "$ref": "#/components/schemas/output_qbo_creditcardpaymentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a creditcardpayment"
      }
    },
    "/v3/company/{realmID}/creditmemo": {
      "post": {
        "operationId": "creditmemo/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the credit memo. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the credit-memo is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the credit-memo. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively.",
                        "readOnly": true
                      },
                      "PrintStatus": {
                        "description": "Printing status of the credit-memo. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the deposit form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the CreditMemo was created from.",
                        "readOnly": true
                      },
                      "RemainingCredit": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total credit amount still available to apply towards the payment.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the credit memo. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the credit-memo is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the credit-memo. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "The minimum line item required for the request is one of the following. Sales item line type Group item line type",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively.",
                        "readOnly": true
                      },
                      "PrintStatus": {
                        "description": "Printing status of the credit-memo. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the deposit form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the CreditMemo was created from.",
                        "readOnly": true
                      },
                      "RemainingCredit": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total credit amount still available to apply towards the payment.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Line",
                      "CustomerRef"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the credit memo. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the credit-memo is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerLine is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the credit-memo. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively.",
                        "readOnly": true
                      },
                      "PrintStatus": {
                        "description": "Printing status of the credit-memo. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the deposit form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the CreditMemo was created from.",
                        "readOnly": true
                      },
                      "RemainingCredit": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total credit amount still available to apply towards the payment.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CreditMemo": {
                      "$ref": "#/components/schemas/output_qbo_creditmemoresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a credit memo"
      }
    },
    "/v3/company/{realmID}/creditmemo/{creditmemoId}": {
      "get": {
        "operationId": "creditmemo/read_a_credit_memo",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "creditmemoId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CreditMemo": {
                      "$ref": "#/components/schemas/output_qbo_creditmemoresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a credit memo"
      }
    },
    "/v3/company/{realmID}/creditmemo/{creditmemoId}/pdf": {
      "get": {
        "operationId": "creditmemo/get_a_credit_memo_as_pdf",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "creditmemoId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Get a credit memo as PDF"
      }
    },
    "/v3/company/{realmID}/creditmemo/{creditmemoId}/send": {
      "post": {
        "operationId": "creditmemo/send_a_credit_memo",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "creditmemoId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendTo",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CreditMemo": {
                      "$ref": "#/components/schemas/output_qbo_creditmemoresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Send a credit memo"
      }
    },
    "/v3/company/{realmID}/customertype/{Id}": {
      "get": {
        "operationId": "customertype/read_a_customertype",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "Id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CustomerType": {
                      "$ref": "#/components/schemas/output_qbo_customertyperesponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a customertype"
      }
    },
    "/v3/company/{realmID}/department": {
      "post": {
        "operationId": "department/create_a_department",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks. If set to false, this entity is not available."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Parent:Department1:SubDepartment1:SubDepartment2 . Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the department.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The immediate parent of the SubDepartment. Required for the create operation if this object is a SubDepartment. Required if this object is a subdepartment"
                      },
                      "SubDepartment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies whether this Department object is a SubDepartment. true --SubDepartment. false or null--top-level Department.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Name"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks. If set to false, this entity is not available."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Parent:Department1:SubDepartment1:SubDepartment2 . Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the Department.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The immediate parent of the SubDepartment. Required for the create operation if this object is a SubDepartment. Required if this object is a subdepartment."
                      },
                      "SubDepartment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies whether this Department object is a SubDepartment. true --SubDepartment. false or null--top-level Department.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Department": {
                      "$ref": "#/components/schemas/output_qbo_departmentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a department / Full update a department"
      }
    },
    "/v3/company/{realmID}/department/{departmentId}": {
      "get": {
        "operationId": "department/read_a_department",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "departmentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Department": {
                      "$ref": "#/components/schemas/output_qbo_departmentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a department"
      }
    },
    "/v3/company/{realmID}/deposit": {
      "post": {
        "operationId": "deposit/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "CashBack": {
                        "$ref": "#/components/schemas/qbo_cashbackinfo"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_linelinkedtxn"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_depositline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "CashBack": {
                        "$ref": "#/components/schemas/qbo_cashbackinfo"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: DepositLine",
                        "items": {
                          "$ref": "#/components/schemas/qbo_depositline"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "CashBack": {
                        "$ref": "#/components/schemas/qbo_cashbackinfo"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_linelinkedtxn"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_depositline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "CashBack": {
                        "$ref": "#/components/schemas/qbo_cashbackinfo"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_linelinkedtxn"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_depositline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Deposit": {
                      "$ref": "#/components/schemas/output_qbo_depositresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a deposit"
      }
    },
    "/v3/company/{realmID}/deposit/{depositId}": {
      "get": {
        "operationId": "deposit/read_a_deposit",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "depositId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Deposit": {
                      "$ref": "#/components/schemas/output_qbo_depositresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a deposit"
      }
    },
    "/v3/company/{realmID}/download/{attachableId}": {
      "get": {
        "operationId": "attachable/download_an_attachment",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "attachableId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Download an attachment"
      }
    },
    "/v3/company/{realmID}/employee": {
      "post": {
        "operationId": "employee/create_an_employee",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "BillRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "This attribute can only be set if BillableTime is true. Not supported when QuickBooks Payroll is enabled."
                      },
                      "BillableTime": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "BirthDate": {
                        "description": "Birth date of the employee.",
                        "type": "string"
                      },
                      "CostRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Pay rate of the employee"
                      },
                      "DisplayName": {
                        "description": "The name of the person or organization as displayed. Default Value: If not supplied, the system generates DisplayName by concatenating employee name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix . When QuickBooks Payroll is enabled, this attribute is read-only and a concatenation of GivenName , MiddleName , and FamilyName .",
                        "type": "string"
                      },
                      "EmployeeNumber": {
                        "description": "Specifies the ID number of the employee in the employer's directory.",
                        "type": "string"
                      },
                      "FamilyName": {
                        "description": "Family name or the last name of the person. At least one of GivenName or FamilyName attributes is required.",
                        "type": "string"
                      },
                      "Gender": {
                        "description": "Gender of the employee. To clear the gender value, set to Null in a full update request. Supported values include: Male or Female .",
                        "type": "string"
                      },
                      "GivenName": {
                        "description": "Given name or Family name of a person. At least one of GivenName or FamilyName attributes is required.",
                        "type": "string"
                      },
                      "HiredDate": {
                        "description": "Hire date of the employee.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "MiddleName": {
                        "description": "Middle name of the person. The person can have zero or more middle names.",
                        "type": "string"
                      },
                      "Mobile": {
                        "$ref": "#/components/schemas/qbo_telephonenumber",
                        "description": "Mobile phone number."
                      },
                      "Organization": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "true --the object represents an organization. false --the object represents a person."
                      },
                      "PrimaryAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Represents the physical street address for this employee. If QuickBooks Payroll is enabled for the company, the following PhysicalAddress fields are required: City , maximum of 255 chars CountrySubDivisionCode , maximum of 255 chars PostalCode Required when QuickBooks Payroll is enabled. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "PrimaryEmailAddr": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Primary email address."
                      },
                      "PrimaryPhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber",
                        "description": "Primary phone number."
                      },
                      "PrintOnCheckName": {
                        "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update. Not supported when QuickBooks Payroll is enabled.",
                        "type": "string"
                      },
                      "ReleasedDate": {
                        "description": "Release date of the employee.",
                        "type": "string"
                      },
                      "SSN": {
                        "description": "Social security number (SSN) of the employee. If SSN is set, it is masked in the response with XXX-XX-XXXX. If XXX-XX-XXXX is sent in the create or update request, XXX-XX-XXXX is ignored and the old value is preserved. This attribute cannot be passed in a request when QuickBooks Payroll is enabled. Code for this field must be removed before submitting.",
                        "type": "string"
                      },
                      "Suffix": {
                        "description": "Suffix of the name. For example, Jr . Not supported when QuickBooks Payroll is enabled.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Title": {
                        "description": "Title of the person. This tag supports i18n, all locale. Not supported when QuickBooks Payroll is enabled.",
                        "type": "string"
                      },
                      "V4IDPseudonym": {
                        "description": "Employee reference number. For internal use only.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "BillRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "This attribute can only be set if BillableTime is true. Not supported when QuickBooks Payroll is enabled."
                      },
                      "BillableTime": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "BirthDate": {
                        "description": "Birth date of the employee.",
                        "type": "string"
                      },
                      "CostRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Pay rate of the employee"
                      },
                      "DisplayName": {
                        "description": "The name of the person or organization as displayed. Default Value: If not supplied, the system generates DisplayName by concatenating employee name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix . When QuickBooks Payroll is enabled, this attribute is read-only and a concatenation of GivenName , MiddleName , and FamilyName .",
                        "type": "string"
                      },
                      "EmployeeNumber": {
                        "description": "Specifies the ID number of the employee in the employer's directory.",
                        "type": "string"
                      },
                      "FamilyName": {
                        "description": "Family name or the last name of the person. At least one of GivenName or FamilyName attributes is required.",
                        "type": "string"
                      },
                      "Gender": {
                        "description": "Gender of the employee. To clear the gender value, set to Null in a full update request. Supported values include: Male or Female .",
                        "type": "string"
                      },
                      "GivenName": {
                        "description": "Given name or family name of a person. At least one of GivenName or FamilyName attributes is required.",
                        "type": "string"
                      },
                      "HiredDate": {
                        "description": "Hire date of the employee.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "MiddleName": {
                        "description": "Middle name of the person. The person can have zero or more middle names.",
                        "type": "string"
                      },
                      "Mobile": {
                        "$ref": "#/components/schemas/qbo_telephonenumber",
                        "description": "Mobile phone number."
                      },
                      "Organization": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "true --the object represents an organization. false --the object represents a person."
                      },
                      "PrimaryAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Represents the physical street address for this employee. If QuickBooks Payroll is enabled for the company, the following PhysicalAddress fields are required: City , maximum of 255 chars CountrySubDivisionCode , maximum of 255 chars PostalCode Required when QuickBooks Payroll is enabled. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "PrimaryEmailAddr": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Primary email address."
                      },
                      "PrimaryPhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber",
                        "description": "Primary phone number."
                      },
                      "PrintOnCheckName": {
                        "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update. Not supported when QuickBooks Payroll is enabled.",
                        "type": "string"
                      },
                      "ReleasedDate": {
                        "description": "Release date of the employee.",
                        "type": "string"
                      },
                      "SSN": {
                        "description": "Social security number (SSN) of the employee. If SSN is set, it is masked in the response with XXX-XX-XXXX. If XXX-XX-XXXX is sent in the create or update request, XXX-XX-XXXX is ignored and the old value is preserved. This attribute cannot be passed in a request when QuickBooks Payroll is enabled. Code for this field must be removed before submitting.",
                        "type": "string"
                      },
                      "Suffix": {
                        "description": "Suffix of the name. For example, Jr . Not supported when QuickBooks Payroll is enabled.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "Title": {
                        "description": "Title of the person. This tag supports i18n, all locale. Not supported when QuickBooks Payroll is enabled.",
                        "type": "string"
                      },
                      "V4IDPseudonym": {
                        "description": "Employee reference number. For internal use only.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Employee": {
                      "$ref": "#/components/schemas/output_qbo_employeeresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create an employee / Full update an employee"
      }
    },
    "/v3/company/{realmID}/employee/{employeeId}": {
      "get": {
        "operationId": "employee/read_an_employee",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "employeeId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Employee": {
                      "$ref": "#/components/schemas/output_qbo_employeeresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read an employee"
      }
    },
    "/v3/company/{realmID}/estimate": {
      "post": {
        "operationId": "estimate/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AcceptedBy": {
                        "description": "Name of customer who accepted the estimate.",
                        "type": "string"
                      },
                      "AcceptedDate": {
                        "description": "Date estimate was accepted.",
                        "type": "string"
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "ExpirationDate": {
                        "description": "Date by which estimate must be accepted before invalidation.",
                        "type": "string"
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnStatus": {
                        "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AcceptedBy": {
                        "description": "Name of customer who accepted the estimate.",
                        "type": "string"
                      },
                      "AcceptedDate": {
                        "description": "Date estimate was accepted.",
                        "type": "string"
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "ExpirationDate": {
                        "description": "Date by which estimate must be accepted before invalidation.",
                        "type": "string"
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "The minimum line item required for the request is one of the following. Sales item line type Group item line type",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnStatus": {
                        "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Line",
                      "CustomerRef"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AcceptedBy": {
                        "description": "Name of customer who accepted the estimate.",
                        "type": "string"
                      },
                      "AcceptedDate": {
                        "description": "Date estimate was accepted.",
                        "type": "string"
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "ExpirationDate": {
                        "description": "Date by which estimate must be accepted before invalidation.",
                        "type": "string"
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnStatus": {
                        "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AcceptedBy": {
                        "description": "Name of customer who accepted the estimate.",
                        "type": "string"
                      },
                      "AcceptedDate": {
                        "description": "Date estimate was accepted.",
                        "type": "string"
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "ExpirationDate": {
                        "description": "Date by which estimate must be accepted before invalidation.",
                        "type": "string"
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnStatus": {
                        "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Estimate": {
                      "$ref": "#/components/schemas/output_qbo_estimateresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete an estimate"
      }
    },
    "/v3/company/{realmID}/estimate/{estimateId}": {
      "get": {
        "operationId": "estimate/read_an_estimate",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "estimateId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Estimate": {
                      "$ref": "#/components/schemas/output_qbo_estimateresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read an estimate"
      }
    },
    "/v3/company/{realmID}/estimate/{estimateId}/pdf": {
      "get": {
        "operationId": "estimate/get_an_estimate_as_pdf",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "estimateId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Get an estimate as PDF"
      }
    },
    "/v3/company/{realmID}/estimate/{estimateId}/send": {
      "post": {
        "operationId": "estimate/send_an_estimate",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "estimateId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendTo",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Estimate": {
                      "$ref": "#/components/schemas/output_qbo_estimateresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Send an estimate"
      }
    },
    "/v3/company/{realmID}/exchangerate": {
      "get": {
        "operationId": "exchangerate/get_an_exchangerate_for_an_individual_currency_code",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "asofdate",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sourcecurrencycode",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "QueryResponse": {
                      "additionalProperties": true,
                      "properties": {
                        "Exchangerate": {
                          "items": {
                            "$ref": "#/components/schemas/output_qbo_exchangerateresponse"
                          },
                          "type": "array"
                        },
                        "maxResults": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        },
                        "startPosition": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        },
                        "totalCount": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "type": "object"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Get an exchangerate for an individual currency code."
      },
      "post": {
        "operationId": "exchangerate/update_an_exchangerate",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "AsOfDate": {
                    "description": "Date on which this exchange rate was set.",
                    "type": "string"
                  },
                  "CustomField": {
                    "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_customfield"
                    },
                    "type": "array"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "Rate": {
                    "anyOf": [
                      {
                        "type": "number"
                      },
                      {
                        "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                        "type": "string"
                      }
                    ],
                    "description": "The exchange rate between SourceCurrencyCode and TargetCurrencyCode on the AsOfDate date."
                  },
                  "SourceCurrencyCode": {
                    "description": "The source currency from which the exchange rate is specified, and usually. Specify as a three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. For example, in the equation 65 INR = 1 USD , INR is the source currency.",
                    "type": "string"
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TargetCurrencyCode": {
                    "description": "The target currency against which the exchange rate is specified. Specify as a three letter string representing the ISO 4217 code for the currency. For example, USD , AUD , EUR , and so on. For example, in the equation 65 INR = 1 USD , USA is the target currency.",
                    "type": "string"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Exchangerate": {
                      "$ref": "#/components/schemas/output_qbo_exchangerateresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Update an exchangerate"
      }
    },
    "/v3/company/{realmID}/inventoryadjustment": {
      "post": {
        "operationId": "inventoryadjustment/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AdjustAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively.",
                        "readOnly": true
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of an inventory adjustment.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_itemadjustmentline"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AdjustAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of an inventory adjustment.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_itemadjustmentline"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "DocNumber",
                      "AdjustAccountRef",
                      "Line",
                      "TxnDate"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AdjustAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies which account is debited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AdjustAccountRef.value and AdjustAccountRef.name , respectively.",
                        "readOnly": true
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of an inventory adjustment.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_itemadjustmentline"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "InventoryAdjustment": {
                      "$ref": "#/components/schemas/output_qbo_inventoryadjustmentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete an inventory adjustment"
      }
    },
    "/v3/company/{realmID}/inventoryadjustment/{inventoryadjustmentId}": {
      "get": {
        "operationId": "inventoryadjustment/read_an_inventory_adjustment",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "inventoryadjustmentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "InventoryAdjustment": {
                      "$ref": "#/components/schemas/output_qbo_inventoryadjustmentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read an inventory adjustment"
      }
    },
    "/v3/company/{realmID}/invoice/{invoiceId}/pdf": {
      "get": {
        "operationId": "invoice/get_an_invoice_as_pdf",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "invoiceId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Get an invoice as PDF"
      }
    },
    "/v3/company/{realmID}/journalentry": {
      "post": {
        "operationId": "journalentry/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Adjustment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates whether this transaction is a journal entry adjustment."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_journalentryline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxRateRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Adjustment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates whether this transaction is a journal entry adjustment."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a journal entry. Two line items are required: one with PostingType set to Debit and one with PostingType set to Credit . Set Line.DetailType to JournalEntryLine for both lines.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_journalentryline"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxRateRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Line"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Adjustment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates whether this transaction is a journal entry adjustment."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_journalentryline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxRateRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Adjustment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicates whether this transaction is a journal entry adjustment."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_journalentryline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxRateRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "JournalEntry": {
                      "$ref": "#/components/schemas/output_qbo_journalentryresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a journalentry"
      }
    },
    "/v3/company/{realmID}/journalentry/{journalentryId}": {
      "get": {
        "operationId": "journalentry/read_a_journalentry",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "journalentryId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "JournalEntry": {
                      "$ref": "#/components/schemas/output_qbo_journalentryresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a journalentry"
      }
    },
    "/v3/company/{realmID}/payment/{paymentId}/pdf": {
      "get": {
        "operationId": "payment/get_a_payment_as_pdf",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "paymentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Get a payment as PDF"
      }
    },
    "/v3/company/{realmID}/payment/{paymentId}/send": {
      "post": {
        "operationId": "payment/send_a_payment",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "paymentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendTo",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Payment": {
                      "$ref": "#/components/schemas/output_qbo_paymentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Send a payment"
      }
    },
    "/v3/company/{realmID}/paymentmethod": {
      "post": {
        "operationId": "paymentmethod/create_a_paymentmethod",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the payment method.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Type": {
                        "description": "Defines the type of payment. Valid values include CREDIT_CARD or NON_CREDIT_CARD .",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Name"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the payment method.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "Type": {
                        "description": "Defines the type of payment. Valid values include CREDIT_CARD or NON_CREDIT_CARD .",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "PaymentMethod": {
                      "$ref": "#/components/schemas/output_qbo_paymentmethodresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a paymentmethod / Full update a paymentmethod"
      }
    },
    "/v3/company/{realmID}/paymentmethod/{paymentmethodId}": {
      "get": {
        "operationId": "paymentmethod/read_a_paymentmethod",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "paymentmethodId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "PaymentMethod": {
                      "$ref": "#/components/schemas/output_qbo_paymentmethodresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a paymentmethod"
      }
    },
    "/v3/company/{realmID}/preferences": {
      "post": {
        "operationId": "preferences/full_update_preferences",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "AccountingInfoPrefs": {
                    "$ref": "#/components/schemas/qbo_accountinginfoprefs",
                    "description": "The following settings are available for QuickBooks Online Plus editions, only. To determine this edition type, query the value of the OfferingSku CustomerInfo.Name name/value pair for QuickBooks Online Plus ."
                  },
                  "CurrencyPrefs": {
                    "$ref": "#/components/schemas/qbo_currencyprefs"
                  },
                  "EmailMessagesPrefs": {
                    "$ref": "#/components/schemas/qbo_emailmessagesprefs"
                  },
                  "Id": {
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "OtherPrefs": {
                    "additionalProperties": true,
                    "description": "Specifies extension of Preference resource to allow extension of Name-Value pair based extension at the top level.",
                    "type": "object"
                  },
                  "ProductAndServicesPrefs": {
                    "$ref": "#/components/schemas/qbo_productandservicesprefs"
                  },
                  "ReportPrefs": {
                    "$ref": "#/components/schemas/qbo_reportprefs"
                  },
                  "SalesFormsPrefs": {
                    "$ref": "#/components/schemas/qbo_salesformspref"
                  },
                  "SyncToken": {
                    "type": "string"
                  },
                  "TaxPrefs": {
                    "$ref": "#/components/schemas/qbo_taxprefs"
                  },
                  "TimeTrackingPrefs": {
                    "$ref": "#/components/schemas/qbo_timetrackingprefs"
                  },
                  "VendorAndPurchasesPrefs": {
                    "$ref": "#/components/schemas/qbo_vendorandpurchaseprefs"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "Id",
                  "SyncToken"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Preferences": {
                      "$ref": "#/components/schemas/output_qbo_preferencesresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Full update preferences"
      }
    },
    "/v3/company/{realmID}/purchase": {
      "post": {
        "operationId": "purchase/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the account reference to which this purchase is applied based on the PaymentType . A type of Check should have bank account, CreditCard should specify credit card account, etc. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
                      },
                      "Credit": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "EntityRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include ItemBasedExpenseLine (Available if Preferences.ProductAndServicesPrefs.ForPurchase is set to true ) and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentType": {
                        "description": "Type can be Cash , Check , or CreditCard .",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
                        "type": "string"
                      },
                      "PurchaseEx": {
                        "additionalProperties": true,
                        "description": "For internal use.",
                        "type": "object"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
                        "readOnly": true
                      },
                      "RemitToAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the account reference. Check must specify bank account, CreditCard must specify credit card account. Validation Rules:Valid and Active Account Reference of an appropriate type."
                      },
                      "Credit": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "EntityRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line type for create: AccountBasedExpenseLine",
                        "items": {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentType": {
                        "description": "Payment Type can be: Cash , Check , or CreditCard .",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
                        "type": "string"
                      },
                      "PurchaseEx": {
                        "additionalProperties": true,
                        "description": "For internal use.",
                        "type": "object"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
                        "readOnly": true
                      },
                      "RemitToAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "PaymentType",
                      "AccountRef",
                      "Line"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the account reference to which this purchase is applied based on the PaymentType . A type of Check should have bank account, CreditCard should specify credit card account, etc. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
                      },
                      "Credit": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "EntityRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include ItemBasedExpenseLine (Available if Preferences.ProductAndServicesPrefs.ForPurchase is set to true ) and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentType": {
                        "description": "Type can be Cash , Check , or CreditCard .",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
                        "type": "string"
                      },
                      "PurchaseEx": {
                        "additionalProperties": true,
                        "description": "For internal use.",
                        "type": "object"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
                        "readOnly": true
                      },
                      "RemitToAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Purchase": {
                      "$ref": "#/components/schemas/output_qbo_purchaseresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a purchase"
      }
    },
    "/v3/company/{realmID}/purchase/{purchaseId}": {
      "get": {
        "operationId": "purchase/read_a_purchase",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "purchaseId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Purchase": {
                      "$ref": "#/components/schemas/output_qbo_purchaseresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a purchase"
      }
    },
    "/v3/company/{realmID}/purchaseorder": {
      "post": {
        "operationId": "purchaseorder/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the purchase order. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more Bill objects linked to this purchase order; LinkedTxn.TxnType is set to Bill . To retrieve details of a linked Bill transaction, issue a separate request to read the Bill whose ID is linkedTxn.TxnId .",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "Memo": {
                        "description": "A message for the vendor. This text appears on the Purchase Order object sent to the vendor.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "POEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Used to specify the vendor e-mail address where the purchase req is sent."
                      },
                      "POStatus": {
                        "description": "Purchase order status. Valid values are: Open and Closed .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the purchase order to the vendor. This field maps to the Memo field on the Purchase Order form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the PurchaseOrder was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the vendor shipped or will ship any goods associated with the purchase. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the user-defined ShipMethod associated with the transaction. Store shipping method string in both ShipMethodRef.value and ShipMethodRef.name ."
                      },
                      "ShipTo": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the customer to whose shipping address the order will be shipped to."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "VendorAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the payment should be sent. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies which AP account to which the bill is credited. Many/most small businesses have a single AP account, so the account can be implied. When specified, the account must be a Liability account, and further, the sub-type must be of type Payables. We strongly recommend that the AP Account be explicitly specified in all cases as companies that have more then one AP account will encounter unexpected errors when relating transactions to each other."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the purchase order. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: Item line. Note: The ItemRef in the ItemBasedExpenseLine below must reference an Item in QBO that has an expense account linked to it (e.g. in the ExpenseAccountRef field of the Item). Otherwise the request fails in QBO with a 'You must select an account for this transaction.' error.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more Bill objects linked to this purchase order; LinkedTxn.TxnType is set to Bill . To retrieve details of a linked Bill transaction, issue a separate request to read the Bill whose ID is linkedTxn.TxnId .",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "Memo": {
                        "description": "A message for the vendor. This text appears on the Purchase Order object sent to the vendor.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "POEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Used to specify the vendor e-mail address where the purchase req is sent."
                      },
                      "POStatus": {
                        "description": "Purchase order status. Valid values are: Open and Closed .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the purchase order to the vendor. This field maps to the Memo field on the Purchase Order form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the PurchaseOrder was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the vendor shipped or will ship any goods associated with the purchase. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the user-defined ShipMethod associated with the transaction. Store shipping method string in both ShipMethodRef.value and ShipMethodRef.name ."
                      },
                      "ShipTo": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the customer to whose shipping address the order will be shipped to."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "VendorAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the payment should be sent. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The vendor reference for this transaction."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "APAccountRef",
                      "VendorRef",
                      "Line"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the purchase order. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more Bill objects linked to this purchase order; LinkedTxn.TxnType is set to Bill . To retrieve details of a linked Bill transaction, issue a separate request to read the Bill whose ID is linkedTxn.TxnId .",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "Memo": {
                        "description": "A message for the vendor. This text appears on the Purchase Order object sent to the vendor.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "POEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Used to specify the vendor e-mail address where the purchase req is sent."
                      },
                      "POStatus": {
                        "description": "Purchase order status. Valid values are: Open and Closed .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the purchase order to the vendor. This field maps to the Memo field on the Purchase Order form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the PurchaseOrder was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the vendor shipped or will ship any goods associated with the purchase. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the user-defined ShipMethod associated with the transaction. Store shipping method string in both ShipMethodRef.value and ShipMethodRef.name ."
                      },
                      "ShipTo": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the customer to whose shipping address the order will be shipped to."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "VendorAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Address to which the payment should be sent. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "PurchaseOrder": {
                      "$ref": "#/components/schemas/output_qbo_purchaseorderresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a purchase order"
      }
    },
    "/v3/company/{realmID}/purchaseorder/{purchaseorderId}": {
      "get": {
        "operationId": "purchaseorder/read_a_purchase_order",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "purchaseorderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "PurchaseOrder": {
                      "$ref": "#/components/schemas/output_qbo_purchaseorderresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a purchase order"
      }
    },
    "/v3/company/{realmID}/purchaseorder/{purchaseorderId}/pdf": {
      "get": {
        "operationId": "purchaseorder/get_a_purchase_order_as_pdf",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "purchaseorderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Get a purchase order as PDF"
      }
    },
    "/v3/company/{realmID}/purchaseorder/{purchaseorderId}/send": {
      "post": {
        "operationId": "purchaseorder/send_a_purchase_order",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "purchaseorderId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendTo",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "PurchaseOrder": {
                      "$ref": "#/components/schemas/output_qbo_purchaseorderresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Send a purchase order"
      }
    },
    "/v3/company/{realmID}/recurringtransaction": {
      "post": {
        "operationId": "recurringtransaction/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "maxProperties": 1,
                    "minProperties": 1,
                    "properties": {
                      "Bill": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      },
                      "Deposit": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      },
                      "Estimate": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      },
                      "Invoice": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      },
                      "JournalEntry": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      },
                      "Purchase": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      },
                      "RefundReceipt": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      },
                      "SalesReceipt": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      },
                      "Transfer": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      },
                      "VendorCredit": {
                        "additionalProperties": false,
                        "properties": {
                          "Id": {
                            "type": "string"
                          },
                          "SyncToken": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "Id",
                          "SyncToken"
                        ],
                        "type": "object"
                      }
                    },
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "maxProperties": 1,
                    "minProperties": 1,
                    "properties": {
                      "Bill": {
                        "additionalProperties": true,
                        "properties": {
                          "APAccountRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                          },
                          "Balance": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "CurrencyRef": {
                            "$ref": "#/components/schemas/qbo_currencyref",
                            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                          },
                          "DepartmentRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                          },
                          "DocNumber": {
                            "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "DueDate": {
                            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                            "type": "string"
                          },
                          "ExchangeRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                          },
                          "GlobalTaxCalculation": {
                            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                            "type": "string"
                          },
                          "HomeBalance": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                            "readOnly": true
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "IncludeInAnnualTPAR": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                          },
                          "Line": {
                            "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                            "items": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/qbo_itembasedexpenselinebill"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_accountbasedexpenselinebill"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "LinkedTxn": {
                            "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_linkedtxn"
                            },
                            "type": "array"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PrivateNote": {
                            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                            "type": "string"
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "SalesTermRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "TotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "TxnTaxDetail": {
                            "$ref": "#/components/schemas/qbo_txntaxdetail",
                            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                          },
                          "VendorRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      },
                      "Deposit": {
                        "additionalProperties": true,
                        "properties": {
                          "CashBack": {
                            "$ref": "#/components/schemas/qbo_cashbackinfo"
                          },
                          "CurrencyRef": {
                            "$ref": "#/components/schemas/qbo_currencyref",
                            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . The CurrencyRef can be overwritten by the Line.DepositLineDetail Entity. If the customer that you are referring to has a default currency of USD then the currency for this Deposit will always be set as USD."
                          },
                          "DepartmentRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate Department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                          },
                          "DepositToAccountRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Identifies the account to be used for this deposit. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively."
                          },
                          "ExchangeRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                          },
                          "GlobalTaxCalculation": {
                            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                            "type": "string"
                          },
                          "HomeTotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                            "readOnly": true
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "Line": {
                            "description": "Individual line items comprising the deposit. Specify a Line.LinkedTxn element along with DepositLine detail type if this line is to record a deposit for an existing transaction. Select UndepositedFunds account on the existing transaction to make it available for the Deposit. Possible types of transactions that can be linked to a Deposit include: Transfer , Payment (for Cash, CreditCard, and Check payment method types), SalesReceipt , RefundReceipt , JournalEntry . In addition, any expense object whose line item has AccountReceivable can be linked to a Payment and then that Payment can be linked to a Deposit object. Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object. Valid Line types include: LinkedTxn and DepositLine",
                            "items": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/qbo_linelinkedtxn"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_depositline"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PrivateNote": {
                            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                            "type": "string"
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Deposit was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "TotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "TxnSource": {
                            "description": "Used internally to specify originating source of a credit card transaction.",
                            "type": "string"
                          },
                          "TxnTaxDetail": {
                            "$ref": "#/components/schemas/qbo_txntaxdetail",
                            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      },
                      "Estimate": {
                        "additionalProperties": true,
                        "properties": {
                          "AcceptedBy": {
                            "description": "Name of customer who accepted the estimate.",
                            "type": "string"
                          },
                          "AcceptedDate": {
                            "description": "Date estimate was accepted.",
                            "type": "string"
                          },
                          "ApplyTaxAfterDiscount": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                          },
                          "BillAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "BillEmail": {
                            "$ref": "#/components/schemas/qbo_emailaddress",
                            "description": "Identifies the e-mail address where the estimate is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                          },
                          "ClassRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                          },
                          "CurrencyRef": {
                            "$ref": "#/components/schemas/qbo_currencyref",
                            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                          },
                          "CustomField": {
                            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_customfield"
                            },
                            "type": "array"
                          },
                          "CustomerMemo": {
                            "$ref": "#/components/schemas/qbo_memoref",
                            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                          },
                          "CustomerRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                          },
                          "DepartmentRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                          },
                          "DocNumber": {
                            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                            "type": "string"
                          },
                          "DueDate": {
                            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                            "type": "string"
                          },
                          "EmailStatus": {
                            "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                            "type": "string"
                          },
                          "ExchangeRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                          },
                          "ExpirationDate": {
                            "description": "Date by which estimate must be accepted before invalidation.",
                            "type": "string"
                          },
                          "FreeFormAddress": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                          },
                          "GlobalTaxCalculation": {
                            "description": "TaxExcluded Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .Not applicable to US companies; required for non-US companies.",
                            "type": "string"
                          },
                          "HomeTotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                            "readOnly": true
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "Line": {
                            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                            "items": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/qbo_salesitemline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_groupline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_discountline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_subtotalline"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "LinkedTxn": {
                            "description": "Zero or more Invoice objects related to this transaction. Use LinkedTxn.TxnId as the ID in a separate Invoice read request to retrieve details of the linked object.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_linkedtxn"
                            },
                            "type": "array"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PrintStatus": {
                            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                            "type": "string"
                          },
                          "PrivateNote": {
                            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                            "type": "string"
                          },
                          "ProjectRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Project ID associated with this transaction. When ProjectRef is passed in the US region for QuickBooks Online Advanced and Intuit Enterprise Suite SKUs, a project estimate is created if the user has projects enabled."
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Estimate was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "SalesTermRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                          },
                          "ShipAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "ShipDate": {
                            "description": "Date for delivery of goods or services.",
                            "type": "string"
                          },
                          "ShipFromAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "ShipMethodRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "TaxExemptionRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                            "readOnly": true
                          },
                          "TotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "TxnStatus": {
                            "description": "One of the following status settings: Accepted, Closed, Pending, Rejected, Converted",
                            "type": "string"
                          },
                          "TxnTaxDetail": {
                            "$ref": "#/components/schemas/qbo_txntaxdetail",
                            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      },
                      "Invoice": {
                        "additionalProperties": true,
                        "properties": {
                          "AllowIPNPayment": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                          },
                          "AllowOnlineACHPayment": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                          },
                          "AllowOnlineAffirmPayment": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                          },
                          "AllowOnlineCreditCardPayment": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                          },
                          "AllowOnlinePayPalPayment": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                          },
                          "AllowOnlinePayment": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                          },
                          "ApplyTaxAfterDiscount": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                          },
                          "Balance": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                            "readOnly": true
                          },
                          "BillAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                          },
                          "BillEmail": {
                            "$ref": "#/components/schemas/qbo_emailaddress",
                            "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                          },
                          "BillEmailBcc": {
                            "$ref": "#/components/schemas/qbo_emailaddress",
                            "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                          },
                          "BillEmailCc": {
                            "$ref": "#/components/schemas/qbo_emailaddress",
                            "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                          },
                          "ClassRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                          },
                          "CurrencyRef": {
                            "$ref": "#/components/schemas/qbo_currencyref",
                            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
                          },
                          "CustomField": {
                            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_customfield"
                            },
                            "type": "array"
                          },
                          "CustomerMemo": {
                            "$ref": "#/components/schemas/qbo_memoref",
                            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                          },
                          "CustomerRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                          },
                          "DeliveryInfo": {
                            "$ref": "#/components/schemas/qbo_deliveryinfo",
                            "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                            "readOnly": true
                          },
                          "DepartmentRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                          },
                          "Deposit": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The deposit made towards this invoice."
                          },
                          "DepositToAccountRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                          },
                          "DocNumber": {
                            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                            "type": "string"
                          },
                          "DueDate": {
                            "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                            "type": "string"
                          },
                          "EmailStatus": {
                            "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                            "type": "string"
                          },
                          "ExchangeRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                          },
                          "FreeFormAddress": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                          },
                          "GlobalTaxCalculation": {
                            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                            "type": "string"
                          },
                          "HomeBalance": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                            "readOnly": true
                          },
                          "HomeTotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                            "readOnly": true
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "InvoiceLink": {
                            "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "Line": {
                            "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                            "items": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/qbo_salesitemline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_groupline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_discountline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_subtotalline"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "LinkedTxn": {
                            "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_linkedtxn"
                            },
                            "type": "array"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PrintStatus": {
                            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                            "type": "string"
                          },
                          "PrivateNote": {
                            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                            "type": "string"
                          },
                          "ProjectRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Project ID associated with this transaction."
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "SalesTermRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                          },
                          "ShipAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "ShipDate": {
                            "description": "Date for delivery of goods or services.",
                            "type": "string"
                          },
                          "ShipFromAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "ShipMethodRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "TaxExemptionRef": {
                            "anyOf": [
                              {
                                "$ref": "#/components/schemas/qbo_referencetype",
                                "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                                "readOnly": true
                              },
                              {
                                "maxProperties": 0,
                                "type": "object"
                              }
                            ]
                          },
                          "TotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "TrackingNum": {
                            "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                            "type": "string"
                          },
                          "TransactionLocationType": {
                            "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                            "type": "string"
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "TxnSource": {
                            "description": "Used internally to specify originating source of a credit card transaction.",
                            "type": "string"
                          },
                          "TxnTaxDetail": {
                            "$ref": "#/components/schemas/qbo_txntaxdetail",
                            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      },
                      "JournalEntry": {
                        "additionalProperties": true,
                        "properties": {
                          "Adjustment": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Indicates whether this transaction is a journal entry adjustment."
                          },
                          "CurrencyRef": {
                            "$ref": "#/components/schemas/qbo_currencyref",
                            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                          },
                          "DocNumber": {
                            "description": "Reference number for the transaction. Throws an error when duplicate DocNumber is sent in the request and if Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = WarnDuplicateJournalNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default. If null value is sent in the request null will be saved. If there is a need to support assigning a docNumber when null, it can be achieved through include param, include=allowautodocnum",
                            "type": "string"
                          },
                          "ExchangeRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                          },
                          "GlobalTaxCalculation": {
                            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive . Not applicable to US companies; required for non-US companies.",
                            "type": "string"
                          },
                          "HomeTotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The value of this field will always be set to zero. Applicable if multicurrency is enabled for the company.",
                            "readOnly": true
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "Line": {
                            "description": "Individual line items of a transaction. There must be at least one pair of Journal Entry Line elements, representing a debit and a credit, called distribution lines. Valid Line types include: JournalEntryLine and DescriptionOnlyLine",
                            "items": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/qbo_journalentryline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PrivateNote": {
                            "description": "User entered, organization-private note about the transaction.",
                            "type": "string"
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the JournalEntry was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "TaxRateRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Tax Adjustment Rate Ids for this item. Query the TaxRate list resource to determine the appropriate TaxRate object for this reference. Use TaxRate.Id and TaxRate.Name from that object for TaxRateRef.value and TaxRateRef.name, respectively."
                          },
                          "TotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The value of this field will always be set to zero. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "TxnTaxDetail": {
                            "$ref": "#/components/schemas/qbo_txntaxdetail",
                            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      },
                      "Purchase": {
                        "additionalProperties": true,
                        "properties": {
                          "AccountRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Specifies the account reference to which this purchase is applied based on the PaymentType . A type of Check should have bank account, CreditCard should specify credit card account, etc. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AccountRef.value and AccountRef.name , respectively."
                          },
                          "Credit": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "False —it represents a charge. True —it represents a refund. Valid only for CreditCard payment type. Validation Rules: Valid only for CreditCard transactions."
                          },
                          "CurrencyRef": {
                            "$ref": "#/components/schemas/qbo_currencyref",
                            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                          },
                          "CustomField": {
                            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_customfield"
                            },
                            "type": "array"
                          },
                          "DepartmentRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                          },
                          "DocNumber": {
                            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided; duplicate values are not accepted. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. For Cash/CreditCard transactions, throws an error when duplicate DocNumber is sent in the request. For Check transactions, error is thrown when duplicate DocNumber is sent in the request and Preferences:OtherPrefs:NameValue.Name = WarnDuplicateCheckNumber is true. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "EntityRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Specifies the party with whom an expense is associated. Can be Customer , Vendor, or Employee. Query the corresponding name list resource of the associated type to determine the appropriate object for this reference. Use the Id and DisplayName values from that object for EntityRef.value and EntityRef.name , respectively. Set EntityRef.type to the type of object associated with this expense. For example, if this object represents a purchase from a vendor, then set EntityRef.type to Vendor and query the Vendor resource for the appropriate object to reference."
                          },
                          "ExchangeRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                          },
                          "GlobalTaxCalculation": {
                            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable .",
                            "type": "string"
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "IncludeInAnnualTPAR": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                          },
                          "Line": {
                            "description": "Individual line items of a transaction. Valid Line types include ItemBasedExpenseLine (Available if Preferences.ProductAndServicesPrefs.ForPurchase is set to true ) and AccountBasedExpenseLine",
                            "items": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "LinkedTxn": {
                            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_linkedtxn"
                            },
                            "type": "array"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PaymentMethodRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                          },
                          "PaymentType": {
                            "description": "Type can be Cash , Check , or CreditCard .",
                            "type": "string"
                          },
                          "PrintStatus": {
                            "description": "PrintStatus is applicable only for Check . Ignored for CreditCard charge or refund. Valid values: NotSet , NeedToPrint , PrintComplete.",
                            "type": "string"
                          },
                          "PrivateNote": {
                            "description": "User-entered, organization-private note about the transaction. This field maps to the Memo field on the Expense form in the QuickBooks UI.",
                            "type": "string"
                          },
                          "PurchaseEx": {
                            "additionalProperties": true,
                            "description": "For internal use.",
                            "type": "object"
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Purchase was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "RemitToAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Address to which the payment should be sent. This attribute is applicable only for Check . Ignored for CreditCard charge or refund. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings.",
                            "readOnly": true
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "TotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "TxnSource": {
                            "description": "Used internally to specify originating source of a credit card transaction.",
                            "type": "string"
                          },
                          "TxnTaxDetail": {
                            "$ref": "#/components/schemas/qbo_txntaxdetail",
                            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      },
                      "RefundReceipt": {
                        "additionalProperties": true,
                        "properties": {
                          "ApplyTaxAfterDiscount": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                          },
                          "Balance": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "BillAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "BillEmail": {
                            "$ref": "#/components/schemas/qbo_emailaddress",
                            "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                          },
                          "CheckPayment": {
                            "$ref": "#/components/schemas/qbo_checkpayment",
                            "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                          },
                          "ClassRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                          },
                          "CreditCardPayment": {
                            "$ref": "#/components/schemas/qbo_creditcardpayment",
                            "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                          },
                          "CurrencyRef": {
                            "$ref": "#/components/schemas/qbo_currencyref",
                            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                          },
                          "CustomField": {
                            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_customfield"
                            },
                            "type": "array"
                          },
                          "CustomerMemo": {
                            "$ref": "#/components/schemas/qbo_memoref",
                            "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                          },
                          "CustomerRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                          },
                          "DepartmentRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                          },
                          "DepositToAccountRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively."
                          },
                          "DocNumber": {
                            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "ExchangeRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                          },
                          "GlobalTaxCalculation": {
                            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                            "type": "string"
                          },
                          "HomeBalance": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                            "readOnly": true
                          },
                          "HomeTotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                            "readOnly": true
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "Line": {
                            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only)",
                            "items": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/qbo_salesitemline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_groupline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_discountline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_subtotalline"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PaymentMethodRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                          },
                          "PaymentRefNum": {
                            "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                            "type": "string"
                          },
                          "PaymentType": {
                            "description": "Valid values are Cash , Check , CreditCard , or Other .",
                            "type": "string"
                          },
                          "PrintStatus": {
                            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                            "type": "string"
                          },
                          "PrivateNote": {
                            "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                            "type": "string"
                          },
                          "ProjectRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Project ID associated with this transaction."
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "ShipAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "TaxExemptionRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                            "readOnly": true
                          },
                          "TotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "TxnSource": {
                            "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                            "type": "string"
                          },
                          "TxnTaxDetail": {
                            "$ref": "#/components/schemas/qbo_txntaxdetail",
                            "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      },
                      "SalesReceipt": {
                        "additionalProperties": true,
                        "properties": {
                          "ApplyTaxAfterDiscount": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                          },
                          "Balance": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "BillAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "BillEmail": {
                            "$ref": "#/components/schemas/qbo_emailaddress",
                            "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                          },
                          "ClassRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                          },
                          "CreditCardPayment": {
                            "$ref": "#/components/schemas/qbo_creditcardpayment",
                            "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                          },
                          "CurrencyRef": {
                            "$ref": "#/components/schemas/qbo_currencyref",
                            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                          },
                          "CustomField": {
                            "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_customfield"
                            },
                            "type": "array"
                          },
                          "CustomerMemo": {
                            "$ref": "#/components/schemas/qbo_memoref",
                            "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                          },
                          "CustomerRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                          },
                          "DeliveryInfo": {
                            "$ref": "#/components/schemas/qbo_deliveryinfo",
                            "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                            "readOnly": true
                          },
                          "DepartmentRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                          },
                          "DepositToAccountRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                          },
                          "DocNumber": {
                            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                            "type": "string"
                          },
                          "EmailStatus": {
                            "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                            "type": "string"
                          },
                          "ExchangeRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                          },
                          "FreeFormAddress": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                          },
                          "GlobalTaxCalculation": {
                            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                            "type": "string"
                          },
                          "HomeBalance": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                            "readOnly": true
                          },
                          "HomeTotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                            "readOnly": true
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "Line": {
                            "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
                            "items": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/qbo_salesitemline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_groupline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_descriptiononlyline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_discountline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_subtotalline"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "LinkedTxn": {
                            "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_linkedtxn"
                            },
                            "type": "array"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PaymentMethodRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                          },
                          "PaymentRefNum": {
                            "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                            "type": "string"
                          },
                          "PrintStatus": {
                            "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                            "type": "string"
                          },
                          "PrivateNote": {
                            "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                            "type": "string"
                          },
                          "ProjectRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the Project ID associated with this transaction."
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "ShipAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "ShipDate": {
                            "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                            "type": "string"
                          },
                          "ShipFromAddr": {
                            "$ref": "#/components/schemas/qbo_physicaladdress",
                            "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                          },
                          "ShipMethodRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "TotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                            "readOnly": true
                          },
                          "TrackingNum": {
                            "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                            "type": "string"
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "TxnSource": {
                            "description": "Used internally to specify originating source of a credit card transaction.",
                            "type": "string"
                          },
                          "TxnTaxDetail": {
                            "$ref": "#/components/schemas/qbo_txntaxdetail",
                            "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      },
                      "Transfer": {
                        "additionalProperties": true,
                        "properties": {
                          "Amount": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Indicates the total amount of the transaction."
                          },
                          "FromAccountRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PrivateNote": {
                            "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                            "type": "string"
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "ToAccountRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      },
                      "VendorCredit": {
                        "additionalProperties": true,
                        "properties": {
                          "APAccountRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                          },
                          "Balance": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "CurrencyRef": {
                            "$ref": "#/components/schemas/qbo_currencyref",
                            "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                          },
                          "DepartmentRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                          },
                          "DocNumber": {
                            "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "ExchangeRate": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                          },
                          "GlobalTaxCalculation": {
                            "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                            "type": "string"
                          },
                          "Id": {
                            "description": "Unique identifier for this object.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "IncludeInAnnualTPAR": {
                            "anyOf": [
                              {
                                "type": "boolean"
                              },
                              {
                                "enum": [
                                  "true",
                                  "false"
                                ],
                                "type": "string"
                              }
                            ],
                            "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                          },
                          "Line": {
                            "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                            "items": {
                              "anyOf": [
                                {
                                  "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                                },
                                {
                                  "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                                }
                              ]
                            },
                            "type": "array"
                          },
                          "LinkedTxn": {
                            "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                            "items": {
                              "$ref": "#/components/schemas/qbo_linkedtxn"
                            },
                            "type": "array"
                          },
                          "MetaData": {
                            "$ref": "#/components/schemas/qbo_modificationmetadata",
                            "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                          },
                          "PrivateNote": {
                            "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
                            "type": "string"
                          },
                          "RecurDataRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
                            "readOnly": true
                          },
                          "RecurringInfo": {
                            "$ref": "#/components/schemas/qbo_recurringinfo"
                          },
                          "SyncToken": {
                            "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.",
                            "readOnly": true,
                            "type": "string"
                          },
                          "TotalAmt": {
                            "anyOf": [
                              {
                                "type": "number"
                              },
                              {
                                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                                "type": "string"
                              }
                            ],
                            "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                            "readOnly": true
                          },
                          "TxnDate": {
                            "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                            "type": "string"
                          },
                          "VendorRef": {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                          }
                        },
                        "required": [
                          "RecurringInfo"
                        ],
                        "type": "object"
                      }
                    },
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "RecurringTransaction": {
                      "additionalProperties": true,
                      "properties": {
                        "Bill": {
                          "$ref": "#/components/schemas/output_qbo_billresponse"
                        },
                        "Deposit": {
                          "$ref": "#/components/schemas/output_qbo_depositresponse"
                        },
                        "Estimate": {
                          "$ref": "#/components/schemas/output_qbo_estimateresponse"
                        },
                        "Invoice": {
                          "$ref": "#/components/schemas/output_qbo_invoiceresponse"
                        },
                        "JournalEntry": {
                          "$ref": "#/components/schemas/output_qbo_journalentryresponse"
                        },
                        "Purchase": {
                          "$ref": "#/components/schemas/output_qbo_purchaseresponse"
                        },
                        "RefundReceipt": {
                          "$ref": "#/components/schemas/output_qbo_refundreceiptresponse"
                        },
                        "SalesReceipt": {
                          "$ref": "#/components/schemas/output_qbo_salesreceiptresponse"
                        },
                        "Transfer": {
                          "$ref": "#/components/schemas/output_qbo_transferresponse"
                        },
                        "VendorCredit": {
                          "$ref": "#/components/schemas/output_qbo_vendorcreditresponse"
                        }
                      },
                      "type": "object"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a recurring transaction"
      }
    },
    "/v3/company/{realmID}/recurringtransaction/{recurringtransactionId}": {
      "get": {
        "operationId": "recurringtransaction/read_a_recurring_transaction",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "recurringtransactionId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "QueryResponse": {
                      "additionalProperties": true,
                      "properties": {
                        "RecurringTransaction": {
                          "items": {
                            "additionalProperties": true,
                            "properties": {
                              "Bill": {
                                "$ref": "#/components/schemas/output_qbo_billresponse"
                              },
                              "Deposit": {
                                "$ref": "#/components/schemas/output_qbo_depositresponse"
                              },
                              "Estimate": {
                                "$ref": "#/components/schemas/output_qbo_estimateresponse"
                              },
                              "Invoice": {
                                "$ref": "#/components/schemas/output_qbo_invoiceresponse"
                              },
                              "JournalEntry": {
                                "$ref": "#/components/schemas/output_qbo_journalentryresponse"
                              },
                              "Purchase": {
                                "$ref": "#/components/schemas/output_qbo_purchaseresponse"
                              },
                              "RefundReceipt": {
                                "$ref": "#/components/schemas/output_qbo_refundreceiptresponse"
                              },
                              "SalesReceipt": {
                                "$ref": "#/components/schemas/output_qbo_salesreceiptresponse"
                              },
                              "Transfer": {
                                "$ref": "#/components/schemas/output_qbo_transferresponse"
                              },
                              "VendorCredit": {
                                "$ref": "#/components/schemas/output_qbo_vendorcreditresponse"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        },
                        "maxResults": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        },
                        "startPosition": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        },
                        "totalCount": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "type": "object"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a recurring transaction"
      }
    },
    "/v3/company/{realmID}/refundreceipt": {
      "post": {
        "operationId": "refundreceipt/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "CheckPayment": {
                        "$ref": "#/components/schemas/qbo_checkpayment",
                        "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only)",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                        "type": "string"
                      },
                      "PaymentType": {
                        "description": "Valid values are Cash , Check , CreditCard , or Other .",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                        "readOnly": true
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "CheckPayment": {
                        "$ref": "#/components/schemas/qbo_checkpayment",
                        "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/qbo_referencetype"
                          },
                          {
                            "$ref": "#/components/schemas/qbo_currencyref"
                          }
                        ],
                        "description": "Accounts receivable asset account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. CurrencyRefType Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here ."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "The minimum line item required for the request is one of the following: SalesItemLine and GroupLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                        "type": "string"
                      },
                      "PaymentType": {
                        "description": "Valid values are Cash , Check , CreditCard , or Other .",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                        "readOnly": true
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "DepositToAccountRef",
                      "Line"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "CheckPayment": {
                        "$ref": "#/components/schemas/qbo_checkpayment",
                        "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/qbo_referencetype"
                          },
                          {
                            "$ref": "#/components/schemas/qbo_currencyref"
                          }
                        ],
                        "description": "Accounts receivable asset account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. CurrencyRefType Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here ."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "The minimum line item required for the request is one of the following: SalesItemLine and GroupLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                        "type": "string"
                      },
                      "PaymentType": {
                        "description": "Valid values are Cash , Check , CreditCard , or Other .",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                        "readOnly": true
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "CheckPayment": {
                        "$ref": "#/components/schemas/qbo_checkpayment",
                        "description": "Information about a check payment for the transaction. Used when PaymentType is Check ."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transaction."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account from which payment money is refunded. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. Recommended best practice: check the setting of Preferences:CustomTxnNumber before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only)",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, check # for a check, envelope # for a cash donation. Provide when DepositToAccountRef references an Account object where Account.AccountType=Bank . Required when PrintStatus is set to PrintComplete . If PrintStatus is set to NeedToPrint , the system sets PaymentRefNum to To Print .",
                        "type": "string"
                      },
                      "PaymentType": {
                        "description": "Valid values are Cash , Check , CreditCard , or Other .",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the refund receipt to the customer. This field maps to the Memo field on the refund receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the RefundReceipt was created from.",
                        "readOnly": true
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only.",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "The originating source of the credit card transaction. Used in eCommerce apps where credit card transactions are processed by a merchant account. When set to IntuitPayment , this transaction is inserted into a list of pending deposits to be automatically matched and reconciled with the merchant's account when the transactions made via QuickBooks Payments settle. Currently, the only supported value is IntuitPayment .",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "RefundReceipt": {
                      "$ref": "#/components/schemas/output_qbo_refundreceiptresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a refund receipt"
      }
    },
    "/v3/company/{realmID}/refundreceipt/{refundreceiptId}": {
      "get": {
        "operationId": "refundreceipt/read_a_refund_receipt",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "refundreceiptId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "RefundReceipt": {
                      "$ref": "#/components/schemas/output_qbo_refundreceiptresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a refund receipt"
      }
    },
    "/v3/company/{realmID}/refundreceipt/{refundreceiptId}/pdf": {
      "get": {
        "operationId": "refundreceipt/get_a_refund_receipt_as_pdf",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "refundreceiptId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Get a refund receipt as PDF"
      }
    },
    "/v3/company/{realmID}/refundreceipt/{refundreceiptId}/send": {
      "post": {
        "operationId": "refundreceipt/send_a_refund_receipt",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "refundreceiptId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendTo",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "RefundReceipt": {
                      "$ref": "#/components/schemas/output_qbo_refundreceiptresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Send a refund receipt"
      }
    },
    "/v3/company/{realmID}/reimbursecharge/{taxrateId}": {
      "get": {
        "operationId": "reimbursecharge/read_a_reimburse_charge",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "taxrateId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "ReimburseCharge": {
                      "$ref": "#/components/schemas/output_qbo_reimbursechargeresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a reimburse charge"
      }
    },
    "/v3/company/{realmID}/reports/AccountList": {
      "get": {
        "operationId": "accountlistdetail/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "account_status",
            "required": false,
            "schema": {
              "description": "The account status. Supported values include: Deleted , Not_Deleted",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "account_type",
            "required": false,
            "schema": {
              "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable, AccountsReceivable, Bank, CostOfGoodsSold, CreditCard, Equity, Expense, FixedAsset, Income, LongTermLiability, NonPosting, OtherAsset, OtherCurrentAsset, OtherCurrentLiability, OtherExpense, OtherIncome",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: account_name* , account_type* , detail_acc_type , create_date , create_by , detail_acc_type* , last_ mod_date , last_ mod_by , account_desc* , account_bal*",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "createdate_macro",
            "required": false,
            "schema": {
              "description": "Predefined report account create date range. Use if you want the report to cover a standard create report date range; otherwise, use start_createdate and end_createdate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The start date and end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_moddate",
            "required": false,
            "schema": {
              "description": "If not specified value of moddate_macro is used. (Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "moddate_macro",
            "required": false,
            "schema": {
              "description": "Predefined report account modification date range. Use if you want the report to cover a standard report date range when accounts were modified; otherwise, use the start_moddate and end_moddate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date and end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_moddate",
            "required": false,
            "schema": {
              "description": "If not specified value of moddate_macro is used. (Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/AgedPayableDetail": {
      "get": {
        "operationId": "apagingdetail/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "aging_period",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                  "type": "string"
                }
              ],
              "description": "The number of days in the aging period. Supported Values: A numeric value."
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: create_by, create_date, doc_num*, due_date*, last_mod_by, last_mod_date, memo*, past_due*, term_name, tx_date*, txn_type*, vend_bill_addr, vend_comp_name, vend_name*, vend_pri_cont, vend_pri_email, vend_pri_tel Additional columns with location tracking enabled: dept_name*",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "custom1",
            "required": false,
            "schema": {
              "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "custom2",
            "required": false,
            "schema": {
              "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "custom3",
            "required": false,
            "schema": {
              "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "num_periods",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "pattern": "^-?[0-9]+$",
                  "type": "string"
                }
              ],
              "description": "The number of periods to be shown in the report. Supported Values: A numeric value."
            }
          },
          {
            "in": "query",
            "name": "past_due",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "pattern": "^-?[0-9]+$",
                  "type": "string"
                }
              ],
              "description": "Filters report contents based on minimum days past due. Supported Values: Integer number of days. no filtering"
            }
          },
          {
            "in": "query",
            "name": "report_date",
            "required": false,
            "schema": {
              "description": "Start date to use for the report, in the format YYYY-MM-DD .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "shipvia",
            "required": false,
            "schema": {
              "description": "Filter by the shipping method as stored in Invoice.ShipMethodRef.Name . Supported Values: Any shipping method as sent in the Invoice.ShipMethodRef.Name attribute at Invoice create- or update-time.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "term",
            "required": false,
            "schema": {
              "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/AgedPayables": {
      "get": {
        "operationId": "apagingsummary/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "aging_method",
            "required": false,
            "schema": {
              "description": "The date upon which aging is determined. Supported Values: Report_Date , Current",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "report_date",
            "required": false,
            "schema": {
              "description": "Start date to use for the report, in the format YYYY-MM-DD .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_agedpayablestoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/AgedReceivableDetail": {
      "get": {
        "operationId": "aragingdetail/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "aging_method",
            "required": false,
            "schema": {
              "description": "The date upon which aging is determined. Supported Values: Report_Date , Current",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "aging_period",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                  "type": "string"
                }
              ],
              "description": "The number of days in the aging period. Supported Values: A numeric value."
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: bill_addr, create_by, create_date, cust_bill_email, cust_comp_name, cust_msg, cust_msg, cust_msg, cust_name, deliv_addr, doc_num*, due_date*, last_mod_by, last_mod_date, memo*, past_due, sale_sent_state, ship_addr, term_name, tx_date*, txn_type* Additional columns with custom fields enabled: sales_cust1, sales_cust2, sales_cust3 Additional columns with location tracking enabled: dept_name*",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "custom1",
            "required": false,
            "schema": {
              "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "custom2",
            "required": false,
            "schema": {
              "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "custom3",
            "required": false,
            "schema": {
              "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "num_periods",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "pattern": "^-?[0-9]+$",
                  "type": "string"
                }
              ],
              "description": "The number of periods to be shown in the report. Supported Values: A numeric value."
            }
          },
          {
            "in": "query",
            "name": "past_due",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "pattern": "^-?[0-9]+$",
                  "type": "string"
                }
              ],
              "description": "Filters report contents based on minimum days past due. Supported Values: Integer number of days. No filtering."
            }
          },
          {
            "in": "query",
            "name": "report_date",
            "required": false,
            "schema": {
              "description": "Start date to use for the report, in the format YYYY-MM-DD .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "shipvia",
            "required": false,
            "schema": {
              "description": "Filter by the shipping method as stored in Invoice.ShipMethodRef.Name . Supported Values: Any shipping method as sent in the Invoice.ShipMethodRef.Name attribute at Invoice create- or update-time.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "term",
            "required": false,
            "schema": {
              "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/AgedReceivables": {
      "get": {
        "operationId": "aragingsummary/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "aging_method",
            "required": false,
            "schema": {
              "description": "The date upon which aging is determined. Supported Values: Report_Date , Current",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "report_date",
            "required": false,
            "schema": {
              "description": "Start date to use for the report, in the format YYYY-MM-DD .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_agedreceivablestoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/CashFlow": {
      "get": {
        "operationId": "cashflow/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "item",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_cashflowtoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/ClassSales": {
      "get": {
        "operationId": "salesbyclasssummary/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "item",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/CustomerBalance": {
      "get": {
        "operationId": "customerbalance/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "arpaid",
            "required": false,
            "schema": {
              "description": "Supported Values: All , Paid , Unpaid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "report_date",
            "required": false,
            "schema": {
              "description": "Start date to use for the report, in the format YYYY-MM-DD .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/CustomerBalanceDetail": {
      "get": {
        "operationId": "customerbalancedetail/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "aging_method",
            "required": false,
            "schema": {
              "description": "The date upon which aging is determined. Supported Values: Report_Date , Current",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "arpaid",
            "required": false,
            "schema": {
              "description": "Supported Values: All , Paid , Unpaid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: bill_addr, create_by, create_date, cust_bill_email, cust_comp_name, cust_msg, cust_phone_other, cust_tel, cust_name, deliv_addr, doc_num*, due_date*, last_mod_by, last_mod_date, memo*, sale_sent_state, ship_addr, ship_date, ship_via, term_name, tracking_num, tx_date*, txn_type* Additional columns with custom fields enabled: sales_cust1, sales_cust2, sales_cust3 Additional columns with location tracking enabled: dept_name*",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "custom1",
            "required": false,
            "schema": {
              "description": "Filter by the specified custom field as defined by the CustomField attribute in transaction entities where supported. Supported Values: Name of custom field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "report_date",
            "required": false,
            "schema": {
              "description": "Start date to use for the report, in the format YYYY-MM-DD .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "shipvia",
            "required": false,
            "schema": {
              "description": "Filter by the shipping method as stored in Invoice.ShipMethodRef.Name . Supported Values: Any shipping method as sent in the Invoice.ShipMethodRef.Name attribute at Invoice create- or update-time.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "term",
            "required": false,
            "schema": {
              "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/CustomerIncome": {
      "get": {
        "operationId": "customerincome/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "term",
            "required": false,
            "schema": {
              "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/CustomerSales": {
      "get": {
        "operationId": "salesbycustomer/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "item",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/DepartmentSales": {
      "get": {
        "operationId": "salesbydepartment/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "item",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/GeneralLedger": {
      "get": {
        "operationId": "generalledger/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "account",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified accounts. Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id , of the Account object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "account_type",
            "required": false,
            "schema": {
              "description": "(source_account_type) Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: account_name, chk_print_state, create_by, create_date, cust_name, doc_num*, emp_name, inv_date, is_adj*, is_ap_paid, is_ar_paid, is_cleared, item_name, last_mod_by, last_mod_date, memo*, name*, quantity, rate, split_acc*, tx_date*, txn_type*, vend_name. Additional columns when sales tax enabled: net_amount, tax_amount, tax_code. Additional columns when sales tax enabled: net_amount, tax_amount, tax_code Additional columns when account numbering enabled: account_num. Additional columns when class tracking enabled: klass_name*. Additional columns when location tracking enabled: dept_name*. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . NonTracking status is enabled for the company if CompanyInfo.NameValue.Name.NonTracking is set to true . Currently enabled for Canadian company, other locales can be added in the future.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "source_account",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified source accounts. Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id , of the Account object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/InventoryValuationDetail": {
      "get": {
        "operationId": "inventoryvaluationdetail/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to show in the report. Supported Values: tx_date, txn_id, txn_type, doc_num, name, quantity, rate, home_amount, qty_on_hand, asset_value, create_date, create_by, last_mod_date, last_mod_by, item_sku, memo, exch_rate, account_name, service_date, rate_inventory, qty_on_hand, asset_value_nt, tracking_num",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_svcdate",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type, Customer, Vendor, Employee, Location, Payment Method, Day, Week, Month, Quarter, Year, None",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_svcdate",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "svcdate_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/InventoryValuationSummary": {
      "get": {
        "operationId": "inventoryvaluationsummary/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "item",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "report_date",
            "required": false,
            "schema": {
              "description": "Start date to use for the report, in the format YYYY-MM-DD .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/ItemSales": {
      "get": {
        "operationId": "salesbyproduct/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "If not specified value of date_macro is used. The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "item",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "If not specified value of date_macro is used. The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/JournalReport": {
      "get": {
        "operationId": "journalreport/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Default columns included in the report are denoted with *. Column types to be shown in the report. Supported Values: acct_num_with_extn*, account_name*, credit_amt*, create_by, create_date, debt_amt*, doc_num*, due_date*, is_ar_paid*, is_ap_paid*, item_name, journal_code_name*, last_mod_by, last_mod_date, memo*, name, neg_open_bal, paid_date*, pmt_mthd*, quantity, rate, tx_date*, txn_num*, txn_type* To retrieve the account number (acct_num_with_extn) it's also needed to request the account name (account_name) in the same request. The account number will only be returned if the company has enabled the 'enable account numbers' option in its Chart of Accounts preferences.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/ProfitAndLossDetail": {
      "get": {
        "operationId": "profitandlossdetail/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "account",
            "required": false,
            "schema": {
              "description": "(source_account_type) Filters report contents to include information for specified accounts. Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id , of the Account object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "account_type",
            "required": false,
            "schema": {
              "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "adjusted_gain_loss",
            "required": false,
            "schema": {
              "description": "Specifies whether unrealized gain and losses are included in the report. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: create_by, create_date, doc_num*, last_mod_by, last_mod_date, memo*, name*, pmt_mthd, split_acc*, tx_date*, txn_type* Additional columns with tax enabled: tax_code Additional columns with class tracking enabled: klass_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . NonTracking status is enabled for the company if CompanyInfo.NameValue.Name.NonTracking is set to true . Currently enabled for Canadian company, other locales can be added in the future.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "employee",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified employees. Supported Values: One or more comma separated account IDs as returned in the attribute, Employee.Id , of the Employee entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "payment_method",
            "required": false,
            "schema": {
              "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_profitandlossdetailquery"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/TaxSummary": {
      "get": {
        "operationId": "taxsummary/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "agency_id",
            "required": true,
            "schema": {
              "description": "The ID of the Tax Agency for which to generate the report. Read the TaxAgency object to get all valid values for this field.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/TransactionList": {
      "get": {
        "operationId": "transactionlist/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "appaid",
            "required": false,
            "schema": {
              "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "arpaid",
            "required": false,
            "schema": {
              "description": "Supported Values: All , Paid , Unpaid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bothamount",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified transaction amount. For example, bothamount=1233.45 limits report contents to transactions of amount 1233.45.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cleared",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified check status. Supported Values: Cleared : The transaction has been processed by a bank or credit card account and is reflected in the bank balance. Uncleared : A financial entry that has not been reconciled or matched with the corresponding bank statement records. Reconciled : The transaction has been compared to original records and verified as correct. Deposited : A deposit was made into a bank account, such as a checking account.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: account_name*, create_by, create_date, cust_msg, due_date, doc_num*, inv_date, is_ap_paid, is_cleared, is_no_post*, last_mod_by, memo*, name*, other_account*, pmt_mthd, printed, sales_cust1, sales_cust2, sales_cust3, term_name, tracking_num, tx_date*, txn_type*, term_name, is_adj, last_mod_date, ship_via, olb_status, extra_doc_num, is_ar_paid Additional columns when location tracking enabled: dept_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "createdate_macro",
            "required": false,
            "schema": {
              "description": "Predefined report account create date range. Use if you want the report to cover a standard create report date range; otherwise, use start_createdate and end_createdate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year, This Calendar Quarter, This Calendar Quarter-to-date, Last Calendar Quarter, Last Calendar Quarter-to-date, Next Calendar Quarter, This Calendar Year, This Calendar Year-to-date, Last Calendar Year, Last Calendar Year-to-date, Next Calendar Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "docnum",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified transaction number, as found in the docnum parameter of the transaction object.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "duedate_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range of due dates for balances to include in the report; otherwise, use the start_duedate and end_duedate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_createdate",
            "required": false,
            "schema": {
              "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_moddate",
            "required": false,
            "schema": {
              "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type, Customer, Vendor, Employee, Location, Payment Method, Day, Week, Month, Quarter, Year, Fiscal Year, Fiscal Quarter, None",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "memo",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified memo. Supported Values: One or more comma separated memo IDs.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "moddate_macro",
            "required": false,
            "schema": {
              "description": "Predefined report account modification date range. Use if you want the report to cover a standard report date range when accounts were modified; otherwise, use the start_moddate and end_moddate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "description": "Filters report contents based on the specified comma separated list of ids for the name list customer, vendor, or employee objects. Query the Customer, Vendor, or Employee name list resource to determine the list of objects for this reference. Specify values found in Customer.Id , Vendor.Id , and Employee.Id . For example, name=1,4,7 includes data in the report for namelist ids 1, 4, and 7. vendor and employee objects",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "payment_method",
            "required": false,
            "schema": {
              "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa , Credit Card",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "printed",
            "required": false,
            "schema": {
              "description": "Filters report contents based on whether checks are printed or not. Supported Values: Printed , To_be_printed",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "source_account_type",
            "required": false,
            "schema": {
              "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_createdate",
            "required": false,
            "schema": {
              "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_moddate",
            "required": false,
            "schema": {
              "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "term",
            "required": false,
            "schema": {
              "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "transaction_type",
            "required": false,
            "schema": {
              "description": "Filters report contents based transaction type. Supported values include: CreditCardCharge, Check, Invoice, ReceivePayment, JournalEntry, Bill, CreditCardCredit, VendorCredit, Credit, BillPaymentCheck, BillPaymentCreditCard, Charge, Transfer, Deposit, Statement, BillableCharge, TimeActivity, CashPurchase, SalesReceipt, CreditMemo, CreditRefund, Estimate, InventoryQuantityAdjustment, PurchaseOrder, GlobalTaxPayment, GlobalTaxAdjustment, Service Tax Refund, Service Tax Gross Adjustment, Service Tax Reversal, Service Tax Defer, Service Tax Partial Utilisation",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_transactionlistreporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/TransactionListByCustomer": {
      "get": {
        "operationId": "transactionlistbycustomer/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "appaid",
            "required": false,
            "schema": {
              "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "arpaid",
            "required": false,
            "schema": {
              "description": "Supported Values: All , Paid , Unpaid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bothamount",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified transaction amount. For example, bothamount=1233.45 limits report contents to transactions of amount 1233.45.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cleared",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified check status. Supported Values: Cleared : The transaction has been processed by a bank or credit card account and is reflected in the bank balance. Uncleared : A financial entry that has not been reconciled or matched with the corresponding bank statement records. Reconciled : The transaction has been compared to original records and verified as correct. Deposited : A deposit was made into a bank account, such as a checking account.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: account_name*, create_by, create_date, cust_msg, due_date, doc_num*, inv_date, is_ap_paid, is_cleared, is_no_post*, last_mod_by, memo*, name*, other_account*, pmt_mthd, printed, sales_cust1, sales_cust2, sales_cust3, term_name, tracking_num, tx_date*, txn_type*, term_name, last_mod_date, ship_via, olb_status, is_ar_paid, extra_doc_num, cust_name Additional columns when location tracking enabled: dept_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "createdate_macro",
            "required": false,
            "schema": {
              "description": "Predefined report account create date range. Use if you want the report to cover a standard create report date range; otherwise, use start_createdate and end_createdate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year, This Calendar Quarter, This Calendar Quarter-to-date, Last Calendar Quarter, Last Calendar Quarter-to-date, Next Calendar Quarter, This Calendar Year, This Calendar Year-to-date, Last Calendar Year, Last Calendar Year-to-date, Next Calendar Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "docnum",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified transaction number, as found in the docnum parameter of the transaction object.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "duedate_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range of due dates for balances to include in the report; otherwise, use the start_duedate and end_duedate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_createdate",
            "required": false,
            "schema": {
              "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_moddate",
            "required": false,
            "schema": {
              "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type, Customer, Vendor, Employee, Location, Payment Method, Day, Week, Month, Quarter, Year, Fiscal Year, Fiscal Quarter, None",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "memo",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified memo. Supported Values: One or more comma separated memo IDs.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "moddate_macro",
            "required": false,
            "schema": {
              "description": "Predefined report account modification date range. Use if you want the report to cover a standard report date range when accounts were modified; otherwise, use the start_moddate and end_moddate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "description": "Filters report contents based on the specified comma separated list of ids for the name list customer, vendor, or employee objects. Query the Customer, Vendor, or Employee name list resource to determine the list of objects for this reference. Specify values found in Customer.Id , Vendor.Id , and Employee.Id . For example, name=1,4,7 includes data in the report for namelist ids 1, 4, and 7. vendor and employee objects",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "payment_method",
            "required": false,
            "schema": {
              "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa , Credit Card",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "printed",
            "required": false,
            "schema": {
              "description": "Filters report contents based on whether checks are printed or not. Supported Values: Printed , To_be_printed",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "source_account_type",
            "required": false,
            "schema": {
              "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_createdate",
            "required": false,
            "schema": {
              "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_moddate",
            "required": false,
            "schema": {
              "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "term",
            "required": false,
            "schema": {
              "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "transaction_type",
            "required": false,
            "schema": {
              "description": "Filters report contents based transaction type. Supported values include: CreditCardCharge, Check, Invoice, ReceivePayment, JournalEntry, Bill, CreditCardCredit, VendorCredit, Credit, BillPaymentCheck, BillPaymentCreditCard, Charge, Transfer, Deposit, Statement, BillableCharge, TimeActivity, CashPurchase, SalesReceipt, CreditMemo, CreditRefund, Estimate, InventoryQuantityAdjustment, PurchaseOrder, GlobalTaxPayment, GlobalTaxAdjustment, Service Tax Refund, Service Tax Gross Adjustment, Service Tax Reversal, Service Tax Defer, Service Tax Partial Utilisation",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_transactionlistreporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/TransactionListByVendor": {
      "get": {
        "operationId": "transactionlistbyvendor/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "appaid",
            "required": false,
            "schema": {
              "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "arpaid",
            "required": false,
            "schema": {
              "description": "Supported Values: All , Paid , Unpaid",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "bothamount",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified transaction amount. For example, bothamount=1233.45 limits report contents to transactions of amount 1233.45.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cleared",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified check status. Supported Values: Cleared : The transaction has been processed by a bank or credit card account and is reflected in the bank balance. Uncleared : A financial entry that has not been reconciled or matched with the corresponding bank statement records. Reconciled : The transaction has been compared to original records and verified as correct. Deposited : A deposit was made into a bank account, such as a checking account.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: account_name*, create_by, create_date, cust_msg, due_date, doc_num*, inv_date, is_ap_paid, is_cleared, is_no_post*, last_mod_by, memo*, name*, other_account*, pmt_mthd, printed, sales_cust1, sales_cust2, sales_cust3, term_name, tracking_num, tx_date*, txn_type*, term_name, last_mod_date, po_status, ship_via, olb_status, vendor_name Additional columns when location tracking enabled: dept_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "createdate_macro",
            "required": false,
            "schema": {
              "description": "Predefined report account create date range. Use if you want the report to cover a standard create report date range; otherwise, use start_createdate and end_createdate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year, This Calendar Quarter, This Calendar Quarter-to-date, Last Calendar Quarter, Last Calendar Quarter-to-date, Next Calendar Quarter, This Calendar Year, This Calendar Year-to-date, Last Calendar Year, Last Calendar Year-to-date, Next Calendar Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "docnum",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified transaction number, as found in the docnum parameter of the transaction object.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "duedate_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range of due dates for balances to include in the report; otherwise, use the start_duedate and end_duedate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_createdate",
            "required": false,
            "schema": {
              "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_moddate",
            "required": false,
            "schema": {
              "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type, Customer, Vendor, Employee, Location, Payment Method, Day, Week, Month, Quarter, Year, Fiscal Year, Fiscal Quarter, None",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "memo",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified memo. Supported Values: One or more comma separated memo IDs.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "moddate_macro",
            "required": false,
            "schema": {
              "description": "Predefined report account modification date range. Use if you want the report to cover a standard report date range when accounts were modified; otherwise, use the start_moddate and end_moddate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "description": "Filters report contents based on the specified comma separated list of ids for the name list customer, vendor, or employee objects. Query the Customer, Vendor, or Employee name list resource to determine the list of objects for this reference. Specify values found in Customer.Id , Vendor.Id , and Employee.Id . For example, name=1,4,7 includes data in the report for namelist ids 1, 4, and 7. vendor and employee objects",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "payment_method",
            "required": false,
            "schema": {
              "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa , Credit Card",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "printed",
            "required": false,
            "schema": {
              "description": "Filters report contents based on whether checks are printed or not. Supported Values: Printed , To_be_printed",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "source_account_type",
            "required": false,
            "schema": {
              "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_createdate",
            "required": false,
            "schema": {
              "description": "Specify an explicit account create report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use createdate_macro to cover a standard report date range. (This field is not currently available.)",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_moddate",
            "required": false,
            "schema": {
              "description": "(Account List Detail) Specify an explicit account modification report date range, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use the moddate_macro to cover a standard report date range.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "term",
            "required": false,
            "schema": {
              "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "transaction_type",
            "required": false,
            "schema": {
              "description": "Filters report contents based transaction type. Supported values include: CreditCardCharge, Check, Invoice, ReceivePayment, JournalEntry, Bill, CreditCardCredit, VendorCredit, Credit, BillPaymentCheck, BillPaymentCreditCard, Charge, Transfer, Deposit, Statement, BillableCharge, TimeActivity, CashPurchase, SalesReceipt, CreditMemo, CreditRefund, Estimate, InventoryQuantityAdjustment, PurchaseOrder, GlobalTaxPayment, GlobalTaxAdjustment, Service Tax Refund, Service Tax Gross Adjustment, Service Tax Reversal, Service Tax Defer, Service Tax Partial Utilisation",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_transactionlistreporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/TransactionListWithSplits": {
      "get": {
        "operationId": "transactionlistwithsplits/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: tx_date, txn_type, doc_num, is_no_post, account_name, memo, account_name, amount, is_adj, create_by, create_date, last_mod_date, last_mod_by, cust_name, vend_name, rate, quantity, item_name, emp_name, pmt_mthd, nat_open_bal, tax_type, is_billable, debt_amt, credit_amt, is_cleared, olb_status Additional columns when location tracking enabled: dept_name* Additional columns with location tracking enabled: dept_name* Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "docnum",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified transaction number, as found in the docnum parameter of the transaction object.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "group_by",
            "required": false,
            "schema": {
              "description": "The field in the transaction by which to group results. Supported Values: Name, Account, Transaction Type",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "name",
            "required": false,
            "schema": {
              "description": "Filters report contents based on the specified comma separated list of ids for the name list customer, vendor, or employee objects. Query the Customer, Vendor, or Employee name list resource to determine the list of objects for this reference. Specify values found in Customer.Id , Vendor.Id , and Employee.Id . For example, name=1,4,7 includes data in the report for namelist ids 1, 4, and 7. vendor and employee objects",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "payment_method",
            "required": false,
            "schema": {
              "description": "Filters report contents based on payment method. Supported Values: Cash , Check , Dinners Club , American Express , Discover , MasterCard , Visa",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter. Supported Values: account_name, is_adj, create_by, create_date, tx_date, last_mod_date, last_mod_by, name, doc_num, pmt_mthd, is_no_post , txn_type",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "source_account_type",
            "required": false,
            "schema": {
              "description": "Account type from which transactions are included in the report. Supported Values: AccountsPayable , AccountsReceivable , Bank , CostOfGoodsSold , CreditCard , Equity , Expense , FixedAsset , Income , LongTermLiability , NonPosting , OtherAsset , OtherCurrentAsset , OtherCurrentLiability , OtherExpense , OtherIncome",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "transaction_type",
            "required": false,
            "schema": {
              "description": "Filters report contents based transaction type. Supported values include: CreditCardCharge, Check, Invoice, ReceivePayment, JournalEntry, Bill, CreditCardCredit, VendorCredit, Credit, BillPaymentCheck, BillPaymentCreditCard, Charge, Transfer, Deposit, Statement, BillableCharge, TimeActivity, CashPurchase, SalesReceipt, CreditMemo, CreditRefund, Estimate, InventoryQuantityAdjustment, PurchaseOrder, GlobalTaxPayment, GlobalTaxAdjustment, Service Tax Refund, Service Tax Gross Adjustment, Service Tax Reversal, Service Tax Defer, Service Tax Partial Utilisation",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_transactionlistreporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/TrialBalance": {
      "get": {
        "operationId": "trialbalance/query_a_report/standard",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_trialbalancereporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/TrialBalanceFR": {
      "get": {
        "operationId": "trialbalance/query_a_report/fr",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_trialbalancereporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/VendorBalance": {
      "get": {
        "operationId": "vendorbalance/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "appaid",
            "required": false,
            "schema": {
              "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "report_date",
            "required": false,
            "schema": {
              "description": "Start date to use for the report, in the format YYYY-MM-DD .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/VendorBalanceDetail": {
      "get": {
        "operationId": "vendorbalancedetail/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "appaid",
            "required": false,
            "schema": {
              "description": "Status of the balance. Supported Values: Paid , Unpaid , All",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "columns",
            "required": false,
            "schema": {
              "description": "Column types to be shown in the report. Supported Values: create_by, create_date, doc_num*, due_date*, last_mod_by, last_mod_date, memo*, term_name, tx_date*, txn_type*, vend_bill_addr, vend_comp_name, vend_name*, vend_pri_cont, vend_pri_email, vend_pri_tel Additional columns with location tracking enabled: dept_name*",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "duedate_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range of due dates for balances to include in the report; otherwise, use the start_duedate and end_duedate to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "report_date",
            "required": false,
            "schema": {
              "description": "Start date to use for the report, in the format YYYY-MM-DD .",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_by",
            "required": false,
            "schema": {
              "description": "The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_duedate",
            "required": false,
            "schema": {
              "description": "The range of dates over which receivables are due, in the format YYYY-MM-DD . start_duedate must be less than end_duedate . If not specified, all data is returned.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "term",
            "required": false,
            "schema": {
              "description": "Filters report contents based on term or terms supplied. Supported Values: One or more comma separated term IDs as returned in the attribute, Term.Id of the Term object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/reports/VendorExpenses": {
      "get": {
        "operationId": "vendorexpenses/query_a_report",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_reporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmID}/salesreceipt": {
      "post": {
        "operationId": "salesreceipt/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "const": "delete",
                  "type": "string"
                },
                {
                  "const": "update",
                  "type": "string"
                }
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                        "readOnly": true
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "The minimum line item required for the request is one of the following: SalesItemLine and GroupLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                        "readOnly": true
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Line"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                        "readOnly": true
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax. Default Value: false Constraints: US versions of QuickBooks only."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. Required if EmailStatus=NeedToSend"
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a credit card payment for the transaction. Used when PaymentType is CreditCard . Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which payment money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the receipt. Valid values: NotSet , NeedToSend , EmailSent .",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: SalesItemLine , GroupLine , DescriptionOnlyLine , DiscountLine and SubTotalLine (read-only). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this sales receipt object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this sales receipt object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an sales receipt object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links the sales receipt to refundReceipt objects that are applied to the sales receipt. Returned in the response if linkedTxnTxnType is a refundReceipt. Note that linking sales receipts to refund receipts can only be done via the customer-facing QuickBooks UI. This is only available as read-only via our API Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, Â Check # for a check, envelope # for a cash donation.",
                        "type": "string"
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction form to the customer. This field maps to the Memo field on the Sales Receipt form.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the SalesReceipt was created from.",
                        "readOnly": true
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Location of the transaction, as defined using location tracking in QuickBooks Online.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This element provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "SalesReceipt": {
                      "$ref": "#/components/schemas/output_qbo_salesreceiptresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a salesreceipt"
      }
    },
    "/v3/company/{realmID}/salesreceipt/{salesreceiptId}": {
      "get": {
        "operationId": "salesreceipt/read_a_salesreceipt",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "salesreceiptId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "SalesReceipt": {
                      "$ref": "#/components/schemas/output_qbo_salesreceiptresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a salesreceipt"
      }
    },
    "/v3/company/{realmID}/salesreceipt/{salesreceiptId}/pdf": {
      "get": {
        "operationId": "salesreceipt/get_a_salesreceipt_as_pdf",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "salesreceiptId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/pdf": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Get a salesreceipt as PDF"
      }
    },
    "/v3/company/{realmID}/salesreceipt/{salesreceiptId}/send": {
      "post": {
        "operationId": "salesreceipt/send_a_salesreceipt",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "salesreceiptId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendTo",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "SalesReceipt": {
                      "$ref": "#/components/schemas/output_qbo_salesreceiptresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Send a salesreceipt"
      }
    },
    "/v3/company/{realmID}/taxagency": {
      "post": {
        "operationId": "taxagency/create_a_taxagency",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "DisplayName": {
                    "description": "Name of the agency.",
                    "type": "string"
                  },
                  "Id": {
                    "description": "Unique identifier for this object.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "LastFileDate": {
                    "description": "The last tax filing date for this tax agency. This field is automatically populated by QuickBooks business logic at tax filing time.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "MetaData": {
                    "$ref": "#/components/schemas/qbo_modificationmetadata",
                    "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                  },
                  "SyncToken": {
                    "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.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxAgencyConfig": {
                    "description": "Flag to identify whether the TaxAgency is system defined by Automated Sales Tax engine or user generated. Valid values include USER_DEFINED , SYSTEM_GENERATED SYSTEM_GENERATED.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxRegistrationNumber": {
                    "description": "Registration number for the agency.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxTrackedOnPurchases": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes whether this tax agency is used to track tax on purchases.",
                    "readOnly": true
                  },
                  "TaxTrackedOnSales": {
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "enum": [
                          "true",
                          "false"
                        ],
                        "type": "string"
                      }
                    ],
                    "description": "Denotes whether this tax agency is used to track tax on sales.",
                    "readOnly": true
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "DisplayName"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "TaxAgency": {
                      "$ref": "#/components/schemas/output_qbo_taxagencyresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a taxagency"
      }
    },
    "/v3/company/{realmID}/taxagency/{taxagencyId}": {
      "get": {
        "operationId": "taxagency/read_a_taxagency",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "taxagencyId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "TaxAgency": {
                      "$ref": "#/components/schemas/output_qbo_taxagencyresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a taxagency"
      }
    },
    "/v3/company/{realmID}/taxclassification": {
      "get": {
        "operationId": "taxclassification/read_all_taxclassifications",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "level",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "QueryResponse": {
                      "additionalProperties": true,
                      "properties": {
                        "TaxClassification": {
                          "items": {
                            "$ref": "#/components/schemas/output_qbo_taxclassification"
                          },
                          "type": "array"
                        },
                        "maxResults": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        },
                        "startPosition": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        },
                        "totalCount": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "type": "object"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read all taxclassifications / Read taxclassifications by level"
      }
    },
    "/v3/company/{realmID}/taxclassification/{parentid}/children": {
      "get": {
        "operationId": "taxclassification/read_a_taxclassification_by_parent_id",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "parentid",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "QueryResponse": {
                      "additionalProperties": true,
                      "properties": {
                        "TaxClassification": {
                          "items": {
                            "$ref": "#/components/schemas/output_qbo_taxclassification"
                          },
                          "type": "array"
                        },
                        "maxResults": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        },
                        "startPosition": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        },
                        "totalCount": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "type": "object"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a taxclassification by Parent ID"
      }
    },
    "/v3/company/{realmID}/taxclassification/{taxClassificationId}": {
      "get": {
        "operationId": "taxclassification/read_a_taxclassification_by_id",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "taxClassificationId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "TaxClassification": {
                      "$ref": "#/components/schemas/output_qbo_taxclassification"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a taxclassification by ID"
      }
    },
    "/v3/company/{realmID}/taxcode/{taxcodeId}": {
      "get": {
        "operationId": "taxcode/read_a_taxcode",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "taxcodeId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "TaxCode": {
                      "$ref": "#/components/schemas/output_qbo_taxcoderesponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a taxcode"
      }
    },
    "/v3/company/{realmID}/taxpayment/{taxPaymentId}": {
      "get": {
        "operationId": "taxpayment/read_taxpayment",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "taxPaymentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "TaxPayment": {
                      "$ref": "#/components/schemas/output_qbo_taxpaymentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read taxpayment"
      }
    },
    "/v3/company/{realmID}/taxrate/{taxrateId}": {
      "get": {
        "operationId": "taxrate/read_a_taxrate",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "taxrateId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "TaxRate": {
                      "$ref": "#/components/schemas/output_qbo_taxrateresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a taxrate"
      }
    },
    "/v3/company/{realmID}/taxservice/taxcode": {
      "post": {
        "operationId": "taxservice/create_a_taxservice",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "TaxCode": {
                    "description": "Name of new tax code. To query list of currently defined tax codes, use the TaxCode endpoint.",
                    "type": "string"
                  },
                  "TaxCodeId": {
                    "description": "The id of the newly created tax code. This is generated by Data Services and returned in the response code.",
                    "readOnly": true,
                    "type": "string"
                  },
                  "TaxRateDetails": {
                    "description": "Container to hold one or more tax rate specifications.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_taxratedetails"
                    },
                    "type": "array"
                  },
                  "domain": {
                    "type": "string"
                  },
                  "sparse": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "TaxCode",
                  "TaxRateDetails"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "TaxService": {
                      "$ref": "#/components/schemas/output_qbo_taxserviceresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a taxservice"
      }
    },
    "/v3/company/{realmID}/term": {
      "post": {
        "operationId": "term/create_a_term",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "DayOfMonthDue": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Payment must be received by this day of the month. Required if DueDays not present"
                      },
                      "DiscountDayOfMonth": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Discount applies if paid before this day of month. Required if DueDays not present",
                        "minimum": 1
                      },
                      "DiscountDays": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Discount applies if paid within this number of days. Used only when DueDays is specified."
                      },
                      "DiscountPercent": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Discount percentage available against an amount if paid within the days specified by DiscountDays ."
                      },
                      "DueDays": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Number of days from delivery of goods or services until the payment is due. Required if DayOfMonthDue not present"
                      },
                      "DueNextMonthDays": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Payment due next month if issued that many days before the DayOfMonthDue . Required if DueDays not present.",
                        "minimum": 1
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the term. For example, Net 30 .",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Type": {
                        "description": "Type of the Sales Term. Valid values: STANDARD --Used if DueDays is not null. DATE_DRIVEN --Used if DueDays is null.",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Name"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks."
                      },
                      "DayOfMonthDue": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Payment must be received by this day of the month. Required if DueDays not present"
                      },
                      "DiscountDayOfMonth": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Discount applies if paid before this day of month. Required if DueDays not present",
                        "minimum": 1
                      },
                      "DiscountDays": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Discount applies if paid within this number of days. Used only when DueDays is specified."
                      },
                      "DiscountPercent": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Discount percentage available against an amount if paid within the days specified by DiscountDays ."
                      },
                      "DueDays": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Number of days from delivery of goods or services until the payment is due. Required if DayOfMonthDue not present"
                      },
                      "DueNextMonthDays": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Payment due next month if issued that many days before the DayOfMonthDue . Required if DueDays not present.",
                        "minimum": 1
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the term. For example, Net 30 .",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "Type": {
                        "description": "Type of the Sales Term. Valid values: STANDARD --Used if DueDays is not null. DATE_DRIVEN --Used if DueDays is null.",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Term": {
                      "$ref": "#/components/schemas/output_qbo_termresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a term / Full update a term"
      }
    },
    "/v3/company/{realmID}/term/{termId}": {
      "get": {
        "operationId": "term/read_a_term",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "termId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Term": {
                      "$ref": "#/components/schemas/output_qbo_termresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a term"
      }
    },
    "/v3/company/{realmID}/timeactivity": {
      "post": {
        "operationId": "timeactivity/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "BillableStatus": {
                        "description": "Billable status of the time recorded. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled . You cannot directly update the status to HasBeenBilled . To set the status to HasBeenBilled , create an Invoice object and attach this TimeActivity object as a linked transaction to that Invoice.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "BreakHours": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                      },
                      "BreakMinutes": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with this object. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CostRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Pay rate of the employee or vendor for this time activity."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively. Required if BillableStatus is set to Billable"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of this object. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "Description": {
                        "description": "Description of work completed during time activity.",
                        "type": "string"
                      },
                      "EmployeeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the employee whose time is being recorded. Query the Employee name list resource to determine the appropriate Employee object for this reference. Use Employee.Id and Employee.DisplayName from that object for EmployeerRef.value and EmployeeRef.Name , respectively. Required if NameOf is set to Employee"
                      },
                      "EndTime": {
                        "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
                        "type": "string"
                      },
                      "HourlyRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Hourly bill rate of the employee or vendor for this time activity. Required if BillableStatus is set to Billable"
                      },
                      "Hours": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "ItemRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the service item associated with this object. Query the Item name list resource, where Item.Type is set to Service , to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Minutes": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                      },
                      "NameOf": {
                        "description": "Enumeration of time activity types. Required in conjunction with either EmployeeRef or VendorRef attributes for create operations. Valid values: Vendor or Employee .",
                        "type": "string"
                      },
                      "PayrollItemRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies how much the employee should be paid for doing the work specified by the Compensation Id. Query the EmployeeCompensation resource to determine the appropriate PayrollCompensation object for an employee. Use EmployeeCompensation.Id and EmployerCompensation.Name from that object for PayrollItemRef.value and PayrollItemRef.name , respectively. This field is available as part of the Payroll Compensation resource in the Workforce API. Read more about the Payroll Compensation resource , available to Silver, Gold, and Platinum partners."
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "StartTime": {
                        "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the time recorded is both billable and taxable."
                      },
                      "TxnDate": {
                        "description": "The date for the time activity. This is the posting date that affects financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default. If you provide the StartTime and EndTime without including the timeZone offset, then you would need to pass the TxnDate for any historical or future dates. Lets say if you want to create a historical time activity then pass the TxnDate as the date and pass StartTime and EndTime as Hours without including the timeZone offset.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the vendor whose time is being recorded. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively. Required if NameOf is set to Vendor"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "BillableStatus": {
                        "description": "Billable status of the time recorded. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled . You cannot directly update the status to HasBeenBilled . To set the status to HasBeenBilled , create an Invoice object and attach this TimeActivity object as a linked transaction to that Invoice.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "BreakHours": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                      },
                      "BreakMinutes": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with this object. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CostRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Pay rate of the employee or vendor for this time activity."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of this object. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "Description": {
                        "description": "Description of work completed during time activity.",
                        "type": "string"
                      },
                      "EmployeeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the employee whose time is being recorded. Query the Employee name list resource to determine the appropriate Employee object for this reference. Use Employee.Id and Employee.DisplayName from that object for EmployeerRef.value and EmployeeRef.Name , respectively."
                      },
                      "EndTime": {
                        "description": "Time that work ends. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation. If TnxDate is provided then consider passing the StartTime and EndTime wihtout including the timeZone offset, then the the date passed on the TxnDate is used. If TnxDate is NOT provided, passing the StartTime and EndTime with/wihtout including the timeZone offset, then the the current date on the server is used. For any transactions with historical/future dates kindly include TxnDate in YYYY-MM-DD format and StartTime and EndTime in Hours and Minutes",
                        "type": "string"
                      },
                      "HourlyRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Hourly bill rate of the employee or vendor for this time activity. Required if BillableStatus is set to Billable"
                      },
                      "Hours": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "ItemRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the service item associated with this object. Query the Item name list resource, where Item.Type is set to Service , to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Minutes": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                      },
                      "NameOf": {
                        "description": "Enumeration of time activity types. Required in conjunction with either EmployeeRef or VendorRef attributes for create operations. Valid values: Vendor or Employee .",
                        "type": "string"
                      },
                      "PayrollItemRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies how much the employee should be paid for doing the work specified by the Compensation Id. Query the EmployeeCompensation resource to determine the appropriate PayrollCompensation object for an employee. Use EmployeeCompensation.Id and EmployerCompensation.Name from that object for PayrollItemRef.value and PayrollItemRef.name , respectively. This field is available as part of the Payroll Compensation resource in the Workforce API. Read more about the Payroll Compensation resource , available to Silver, Gold, and Platinum partners."
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "StartTime": {
                        "description": "Time that work starts. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation. If TnxDate is provided then consider passing the StartTime and EndTime wihtout including the timeZone offset, then the the date passed on the TxnDate is used. If TnxDate is NOT provided, passing the StartTime and EndTime with/wihtout including the timeZone offset, then the the current date on the server is used. For any transactions with historical/future dates kindly include TxnDate in YYYY-MM-DD format and StartTime and EndTime in Hours and Minutes",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the time recorded is both billable and taxable."
                      },
                      "TxnDate": {
                        "description": "The date for the time activity. This is the posting date that affects financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default. If you provide the StartTime and EndTime without including the timeZone offset, then you would need to pass the TxnDate for any historical or future dates. Lets say if you want to create a historical time activity then pass the TxnDate as the date and pass StartTime and EndTime as Hours without including the timeZone offset.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the vendor whose time is being recorded. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "NameOf"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "BillableStatus": {
                        "description": "Billable status of the time recorded. This field is not updatable through an API request. The value automatically changes when an invoice is created. Valid values: Billable , NotBillable , HasBeenBilled . You cannot directly update the status to HasBeenBilled . To set the status to HasBeenBilled , create an Invoice object and attach this TimeActivity object as a linked transaction to that Invoice.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "BreakHours": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                      },
                      "BreakMinutes": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes of break taken between StartTime and EndTime . use when StartTime and EndTime are specified"
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with this object. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CostRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Pay rate of the employee or vendor for this time activity."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively. Required if BillableStatus is set to Billable"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of this object. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "Description": {
                        "description": "Description of work completed during time activity.",
                        "type": "string"
                      },
                      "EmployeeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the employee whose time is being recorded. Query the Employee name list resource to determine the appropriate Employee object for this reference. Use Employee.Id and Employee.DisplayName from that object for EmployeerRef.value and EmployeeRef.Name , respectively. Required if NameOf is set to Employee"
                      },
                      "EndTime": {
                        "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
                        "type": "string"
                      },
                      "HourlyRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Hourly bill rate of the employee or vendor for this time activity. Required if BillableStatus is set to Billable"
                      },
                      "Hours": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "ItemRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the service item associated with this object. Query the Item name list resource, where Item.Type is set to Service , to determine the appropriate Item object for this reference. Use Item.Id and Item.Name from that object for ItemRef.value and ItemRef.name , respectively. For France locales: The account associated with the referenced Item object is looked up in the account category list. If this account has same location as specified in the transaction by the TransactionLocationType attribute and the same VAT as in the line item TaxCodeRef attribute, then the item account is used. If there is a mismatch, then the account from the account category list that matches the transaction location and VAT is used. If this account is not present in the account category list, then a new account is created with the new location, new VAT code, and all other attributes as in the default account."
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Minutes": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Hours and minutes worked. Required if StartTime and EndTime not specified"
                      },
                      "NameOf": {
                        "description": "Enumeration of time activity types. Required in conjunction with either EmployeeRef or VendorRef attributes for create operations. Valid values: Vendor or Employee .",
                        "type": "string"
                      },
                      "PayrollItemRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies how much the employee should be paid for doing the work specified by the Compensation Id. Query the EmployeeCompensation resource to determine the appropriate PayrollCompensation object for an employee. Use EmployeeCompensation.Id and EmployerCompensation.Name from that object for PayrollItemRef.value and PayrollItemRef.name , respectively. This field is available as part of the Payroll Compensation resource in the Workforce API. Read more about the Payroll Compensation resource , available to Silver, Gold, and Platinum partners."
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "StartTime": {
                        "description": "Time that work starts and ends, respectively. Required if Hours and Minutes not specified. Note: Kindly consider only the Hours without including the timeZone offset as it does not impact time activity hours calculation.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the time recorded is both billable and taxable."
                      },
                      "TxnDate": {
                        "description": "The date for the time activity. This is the posting date that affects financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default. If you provide the StartTime and EndTime without including the timeZone offset, then you would need to pass the TxnDate for any historical or future dates. Lets say if you want to create a historical time activity then pass the TxnDate as the date and pass StartTime and EndTime as Hours without including the timeZone offset.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the vendor whose time is being recorded. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively. Required if NameOf is set to Vendor"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "TimeActivity": {
                      "$ref": "#/components/schemas/output_qbo_timeactivityresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a timeactivity object"
      }
    },
    "/v3/company/{realmID}/timeactivity/{timeactivityId}": {
      "get": {
        "operationId": "timeactivity/read_a_timeactivity_object",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "timeactivityId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "TimeActivity": {
                      "$ref": "#/components/schemas/output_qbo_timeactivityresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a timeactivity object"
      }
    },
    "/v3/company/{realmID}/transfer": {
      "post": {
        "operationId": "transfer/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Amount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction."
                      },
                      "FromAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "ToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Amount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction."
                      },
                      "FromAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "ToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Amount",
                      "ToAccountRef",
                      "FromAccountRef"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Amount": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction."
                      },
                      "FromAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the asset account from which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for FromAccountRef.value and FromAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Transfer was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "ToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the asset account to which funds are transfered. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ToAccountRef.value and ToAccountRef.name , respectively. The specified account must have Account.Classification set to Asset ."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Transfer": {
                      "$ref": "#/components/schemas/output_qbo_transferresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete an transfer"
      }
    },
    "/v3/company/{realmID}/transfer/{transferId}": {
      "get": {
        "operationId": "transfer/read_an_transfer",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "transferId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Transfer": {
                      "$ref": "#/components/schemas/output_qbo_transferresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read an transfer"
      }
    },
    "/v3/company/{realmID}/upload": {
      "post": {
        "operationId": "attachable/upload_attachments",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "additionalProperties": false,
                "description": "QuickBooks indexed multipart parts: pair each binary file_content_N part with a JSON file_metadata_N part at the same index. Managed SDK calls accept a files array; each item supplies filename, content_type, content_base64 and optional metadata.",
                "patternProperties": {
                  "^file_content_[0-9]+$": {
                    "format": "binary",
                    "type": "string"
                  },
                  "^file_metadata_[0-9]+$": {
                    "additionalProperties": false,
                    "properties": {
                      "AttachableRef": {
                        "description": "Specifies the transaction object to which this attachable file is to be linked.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_attachableref"
                        },
                        "type": "array"
                      },
                      "Category": {
                        "description": "Category of the attachment. Valid values include (case sensitive): Contact Photo , Document , Image , Receipt , Signature , Sound , Other .",
                        "type": "string"
                      },
                      "ContentType": {
                        "description": "ContentType of the attachment. Returned for file attachments.",
                        "type": "string"
                      },
                      "FileAccessUri": {
                        "description": "FullPath FileAccess URI of the attachment. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "FileName": {
                        "description": "FileName of the attachment. Required for file attachments.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Lat": {
                        "description": "Latitude from where the attachment was requested.",
                        "type": "string"
                      },
                      "Long": {
                        "description": "Longitude from where the attachment was requested.",
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Note": {
                        "description": "The note is either related to the attachment specified with the FileName attribute, or as a standalone note. Required for note attachments.",
                        "type": "string"
                      },
                      "PlaceName": {
                        "description": "PlaceName from where the attachment was requested.",
                        "type": "string"
                      },
                      "Size": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Size of the attachment. Returned for file attachments.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Tag": {
                        "description": "Tag name for the requested attachment.",
                        "type": "string"
                      },
                      "TempDownloadUri": {
                        "description": "TempDownload URI which can be directly downloaded by clients. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "ThumbnailFileAccessUri": {
                        "description": "FullPath FileAccess URI of the attachment thumbnail if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "ThumbnailTempDownloadUri": {
                        "description": "Thumbnail TempDownload URI which can be directly downloaded by clients. This is only available if the attachment file is of a content type with thumbnail support. Returned for file attachments.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "type": "object"
                  }
                },
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "AttachableResponse": {
                      "items": {
                        "additionalProperties": true,
                        "properties": {
                          "Attachable": {
                            "$ref": "#/components/schemas/output_qbo_attachableresponse"
                          },
                          "Fault": {
                            "additionalProperties": true,
                            "type": "object"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Upload attachments"
      }
    },
    "/v3/company/{realmID}/vendorcredit": {
      "post": {
        "operationId": "vendorcredit/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The vendor reference for this transaction."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "VendorRef",
                      "Line"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The current amount of the vendor credit reflecting any adjustments to the original credit amount. Initially set to the value of TotalAmt . Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company"
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers as follows: If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers is false, resulting DocNumber is system generated by incrementing the last number by 1. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs:NameValue.Name = VendorAndPurchasesPrefs.UseCustomTxnNumbers before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenseline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this object. The LinkedTxn.TxnType can be set to ReimburseCharge . The LinkedTxn.TxnId can be set as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the transaction to the vendor. This field maps to the Memo field on the transaction form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the VendorCredit was created from.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total credit amount, determined by taking the total of all all lines of the transaction. This includes all charges, allowances, discounts, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The vendor reference for this transaction."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "VendorCredit": {
                      "$ref": "#/components/schemas/output_qbo_vendorcreditresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a vendorcredit"
      }
    },
    "/v3/company/{realmID}/vendorcredit/{vendorcreditId}": {
      "get": {
        "operationId": "vendorcredit/read_a_vendorcredit",
        "parameters": [
          {
            "in": "path",
            "name": "realmID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vendorcreditId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "VendorCredit": {
                      "$ref": "#/components/schemas/output_qbo_vendorcreditresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a vendorcredit"
      }
    },
    "/v3/company/{realmId}/account": {
      "post": {
        "operationId": "accounts/create",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AccountSubType": {
                        "description": "The account sub-type classification and is based on the AccountType value. Required if AccountType is not specified.",
                        "type": "string"
                      },
                      "AccountType": {
                        "description": "A detailed account classification that specifies the use of this account. The type is based on the Classification. Required if AccountSubType is not specified.",
                        "type": "string"
                      },
                      "AcctNum": {
                        "description": "User-defined account number to help the user in identifying the account within the chart-of-accounts and in deciding what should be posted to the account. The Account.AcctNum attribute must not contain colon (:).",
                        "type": "string"
                      },
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                      },
                      "Classification": {
                        "description": "The classification of an account. Not supported for non-posting accounts. Valid values include: Asset , Equity , Expense , Liability , Revenue",
                        "readOnly": true,
                        "type": "string"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which this account holds amounts.",
                        "readOnly": true
                      },
                      "CurrentBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the balance amount for the current Account. Valid for Balance Sheet accounts.",
                        "readOnly": true
                      },
                      "CurrentBalanceWithSubAccounts": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the cumulative balance amount for the current Account and all its sub-accounts.",
                        "readOnly": true
                      },
                      "Description": {
                        "description": "User entered description for the account, which may include user entered information to guide bookkeepers/accountants in deciding what journal entries to post to the account.",
                        "type": "string"
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the object; derived from Name and ParentRef . The fully qualified name prepends the topmost parent, followed by each subaccount separated by colons and takes the form of Parent:Account1:SubAccount1:SubAccount2 . System generated. Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the Parent AccountId if this represents a SubAccount."
                      },
                      "SubAccount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies whether this object represents a parent (false) or subaccount (true). Please note that accounts of these types - OpeningBalanceEquity , UndepositedFunds , RetainedEarnings , CashReceiptIncome , CashExpenditureExpense , ExchangeGainOrLoss cannot have a sub account and cannot be a sub account of another account.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the default tax code used by this account. Tax codes are referenced by the TaxCode.Id in the TaxCode object. For global locales, only."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Name"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AccountSubType": {
                        "description": "The account sub-type classification and is based on the AccountType value.",
                        "type": "string"
                      },
                      "AccountType": {
                        "description": "A detailed account classification that specifies the use of this account. The type is based on the Classification.",
                        "type": "string"
                      },
                      "AcctNum": {
                        "description": "User-defined account number to help the user in identifying the account within the chart-of-accounts and in deciding what should be posted to the account. The Account.AcctNum attribute must not contain colon (:). Name must be unique. Max length for Account.AcctNum : AU & CA: 20 characters. US, UK & IN: 7 characters",
                        "type": "string"
                      },
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Whether or not active inactive accounts may be hidden from most display purposes and may not be posted to."
                      },
                      "Classification": {
                        "description": "The classification of an account. Not supported for non-posting accounts. Valid values include: Asset , Equity , Expense , Liability , Revenue",
                        "readOnly": true,
                        "type": "string"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which this account holds amounts.",
                        "readOnly": true
                      },
                      "CurrentBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the balance amount for the current Account. Valid for Balance Sheet accounts.",
                        "readOnly": true
                      },
                      "CurrentBalanceWithSubAccounts": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the cumulative balance amount for the current Account and all its sub-accounts.",
                        "readOnly": true
                      },
                      "Description": {
                        "description": "User entered description for the account, which may include user entered information to guide bookkeepers/accountants in deciding what journal entries to post to the account.",
                        "type": "string"
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the object; derived from Name and ParentRef . The fully qualified name prepends the topmost parent, followed by each subaccount separated by colons and takes the form of Parent:Account1:SubAccount1:SubAccount2 . System generated. Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "User recognizable name for the Account. Account.Name attribute must not contain double quotes (\") or colon (:).",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies the Parent AccountId if this represents a SubAccount."
                      },
                      "SubAccount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies whether this object represents a parent (false) or subaccount (true). Please note that accounts of these types - OpeningBalanceEquity , UndepositedFunds , RetainedEarnings , CashReceiptIncome , CashExpenditureExpense , ExchangeGainOrLoss cannot have a sub account and cannot be a sub account of another account.",
                        "readOnly": true
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the default tax code used by this account. Tax codes are referenced by the TaxCode.Id in the TaxCode object. For global locales, only."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Account": {
                      "$ref": "#/components/schemas/output_qbo_accountresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create an account / Full update an account"
      }
    },
    "/v3/company/{realmId}/account/{accountId}": {
      "get": {
        "operationId": "accounts/get",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "accountId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Account": {
                      "$ref": "#/components/schemas/output_qbo_accountresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read an account"
      }
    },
    "/v3/company/{realmId}/batch": {
      "post": {
        "operationId": "batch",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "properties": {
                  "BatchItemRequest": {
                    "description": "A wrapper around all request objects for this batch operation.",
                    "items": {
                      "$ref": "#/components/schemas/qbo_batchitemrequest"
                    },
                    "maxItems": 30,
                    "minItems": 1,
                    "type": "array"
                  }
                },
                "required": [
                  "BatchItemRequest"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_batchresponse"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Sample batch request"
      }
    },
    "/v3/company/{realmId}/bill": {
      "post": {
        "operationId": "bills/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "const": "delete",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenselinebill"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenselinebill"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "The minimum line item required for the request.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_accountbasedexpenseline"
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "VendorRef",
                      "Line"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "APAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Specifies to which AP account the bill is credited. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for APAccountRef.value and APAccountRef.name , respectively. The specified account must have Account.Classification set to Liability and Account.AccountSubType set to AccountsPayable . If the company has a single AP account, the account is implied. However, it is recommended that the AP Account be explicitly specified in all cases to prevent unexpected errors when relating transactions to each other."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the bill is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction, as defined using location tracking in QuickBooks Online. Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, a custom value can be provided. If no value is supplied, the resulting DocNumber is null. Throws an error when duplicate DocNumber is sent in the request. Recommended best practice: check the setting of Preferences:OtherPrefs before setting DocNumber. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IncludeInAnnualTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Include the supplier in the annual TPAR. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include: ItemBasedExpenseLine and AccountBasedExpenseLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_itembasedexpenselinebill"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_accountbasedexpenselinebill"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more transactions linked to this Bill object. The LinkedTxn.TxnType can be set to PurchaseOrder , BillPaymentCheck , or ReimburseCharge . Use LinkedTxn.TxnId as the ID of the transaction.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Memo field on the Invoice form.",
                        "type": "string"
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Bill was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details of all taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "VendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the vendor for this transaction. Query the Vendor name list resource to determine the appropriate Vendor object for this reference. Use Vendor.Id and Vendor.Name from that object for VendorRef.value and VendorRef.name , respectively."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Bill": {
                      "$ref": "#/components/schemas/output_qbo_billresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a bill"
      }
    },
    "/v3/company/{realmId}/bill/{billId}": {
      "get": {
        "operationId": "bills/get",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "billId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Bill": {
                      "$ref": "#/components/schemas/output_qbo_billresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a bill"
      }
    },
    "/v3/company/{realmId}/companyinfo/{companyInfoId}": {
      "get": {
        "operationId": "companyinfo/get",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "companyInfoId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "CompanyInfo": {
                      "$ref": "#/components/schemas/output_qbo_companyinforesponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read companyinfo"
      }
    },
    "/v3/company/{realmId}/customer": {
      "post": {
        "operationId": "customers/create",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks. If there is an amount in Customer.Balance when setting this Customer object to inactive through the QuickBooks UI, a CreditMemo balancing transaction is created for the amount."
                      },
                      "AlternatePhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Alternate phone number."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create."
                      },
                      "BalanceWithJobs": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Cumulative open balance amount for the Customer (or Job) and all its sub-jobs. Cannot be written to QuickBooks."
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillWithParent": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this Customer object is billed with its parent. If false, or null the customer is not to be billed with its parent. This attribute is valid only if this entity is a Job or sub Customer."
                      },
                      "CompanyName": {
                        "description": "The name of the company associated with the person or organization.",
                        "type": "string"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the currency in which all amounts associated with this customer are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this customer is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency .",
                        "readOnly": true
                      },
                      "CustomerTypeRef": {
                        "$ref": "#/components/schemas/qbo_customertyperef",
                        "description": "Reference to the customer type assigned to a customer. This field is only returned if the customer is assigned a customer type."
                      },
                      "DefaultTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a default tax code associated with this Customer object. Reference is valid if Customer.Taxable is set to true; otherwise, it is ignored. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the default tax code is set by the system and can not be overridden. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for DefaultTaxCodeRef.value and DefaultTaxCodeRef.name , respectively."
                      },
                      "DisplayName": {
                        "description": "The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                        "type": "string"
                      },
                      "FamilyName": {
                        "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "Fax": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Fax number."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the object. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Customer:Job:Sub-job . System generated. Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "GivenName": {
                        "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "IsProject": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, indicates this is a Project.",
                        "readOnly": true
                      },
                      "Job": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this is a Job or sub-customer. If false or null, this is a top level customer, not a Job or sub-customer."
                      },
                      "Level": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be level with respect to the parent. Constraints: up to 5 levels",
                        "readOnly": true
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "MiddleName": {
                        "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "Mobile": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Mobile phone number."
                      },
                      "Notes": {
                        "description": "Free form text describing the Customer.",
                        "type": "string"
                      },
                      "OpenBalanceDate": {
                        "description": "Date of the Open Balance for the create operation. Write-on-create.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Customer object that is the immediate parent of the Sub-Customer/Job in the hierarchical Customer:Job list. Required for the create operation if this object is a sub-customer or Job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this Customer object. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PreferredDeliveryMethod": {
                        "description": "Preferred delivery method. Values are Print, Email, or None.",
                        "type": "string"
                      },
                      "PrimaryEmailAddr": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Primary email address."
                      },
                      "PrimaryPhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Primary phone number."
                      },
                      "PrimaryTaxIdentifier": {
                        "description": "Also called Tax Reg. No in ( UK ) , ( CA ) , ( IN ) , ( AU ) represents the tax ID of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                        "type": "string"
                      },
                      "PrintOnCheckName": {
                        "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName. Constraints: Cannot be removed with sparse update.",
                        "type": "string"
                      },
                      "ResaleNum": {
                        "description": "Resale number or some additional info about the customer.",
                        "type": "string"
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a SalesTerm associated with this Customer object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "SecondaryTaxIdentifier": {
                        "description": "Also called UTR No. in ( UK ) , CST Reg No. ( IN ) also represents the tax registration number of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                        "type": "string"
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Default shipping address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "Source": {
                        "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                        "type": "string"
                      },
                      "Suffix": {
                        "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxExemptionReasonId": {
                        "description": "The tax exemption reason associated with this customer object. Applicable if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) for the company. Set TaxExemptionReasonId: to one of the following: Id Reason 1 Federal government 2 State government 3 Local government 4 Tribal government 5 Charitable organization 6 Religious organization 7 Educational organization 8 Hospital 9 Resale 10 Direct pay permit 11 Multiple points of use 12 Direct mail 13 Agricultural production 14 Industrial production / manufacturing 15 Foreign diplomat",
                        "type": "string"
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, transactions for this customer are taxable. Default behavior: true, if DefaultTaxCodeRef is defined or false if TaxExemptionReasonId is set."
                      },
                      "Title": {
                        "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , Suffix , or FullyQualifiedName attributes are required during create.",
                        "type": "string"
                      },
                      "WebAddr": {
                        "$ref": "#/components/schemas/qbo_websiteaddress",
                        "description": "Website address."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks. If there is an amount in Customer.Balance when setting this Customer object to inactive through the QuickBooks UI, a CreditMemo balancing transaction is created for the amount."
                      },
                      "AlternatePhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Alternate phone number."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create."
                      },
                      "BalanceWithJobs": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Cumulative open balance amount for the Customer (or Job) and all its sub-jobs. Cannot be written to QuickBooks."
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillWithParent": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this Customer object is billed with its parent. If false, or null the customer is not to be billed with its parent. This attribute is valid only if this entity is a Job or sub Customer."
                      },
                      "CompanyName": {
                        "description": "The name of the company associated with the person or organization.",
                        "type": "string"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the currency in which all amounts associated with this customer are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this customer is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency .",
                        "readOnly": true
                      },
                      "CustomerTypeRef": {
                        "$ref": "#/components/schemas/qbo_customertyperef",
                        "description": "Reference to the customer type assigned to a customer. This field is only returned if the customer is assigned a customer type."
                      },
                      "DefaultTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a default tax code associated with this Customer object. Reference is valid if Customer.Taxable is set to true; otherwise, it is ignored. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the default tax code is set by the system and can not be overridden. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for DefaultTaxCodeRef.value and DefaultTaxCodeRef.name , respectively."
                      },
                      "DisplayName": {
                        "description": "The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                        "type": "string"
                      },
                      "FamilyName": {
                        "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "Fax": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Fax number."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the object. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Customer:Job:Sub-job . System generated. Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "GivenName": {
                        "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IsProject": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, indicates this is a Project.",
                        "readOnly": true
                      },
                      "Job": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this is a Job or sub-customer. If false or null, this is a top level customer, not a Job or sub-customer."
                      },
                      "Level": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be level with respect to the parent. Constraints: up to 5 levels",
                        "readOnly": true
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "MiddleName": {
                        "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "Mobile": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Mobile phone number."
                      },
                      "Notes": {
                        "description": "Free form text describing the Customer.",
                        "type": "string"
                      },
                      "OpenBalanceDate": {
                        "description": "Date of the Open Balance for the create operation. Write-on-create.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Customer object that is the immediate parent of the Sub-Customer/Job in the hierarchical Customer:Job list. Required for the create operation if this object is a sub-customer or Job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this Customer object. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PreferredDeliveryMethod": {
                        "description": "Preferred delivery method. Values are Print, Email, or None.",
                        "type": "string"
                      },
                      "PrimaryEmailAddr": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Primary email address."
                      },
                      "PrimaryPhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Primary phone number."
                      },
                      "PrimaryTaxIdentifier": {
                        "description": "Also called Tax Reg. No in ( UK ) , ( CA ) , ( IN ) , ( AU ) represents the tax ID of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                        "type": "string"
                      },
                      "PrintOnCheckName": {
                        "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName. Constraints: Cannot be removed with sparse update.",
                        "type": "string"
                      },
                      "ResaleNum": {
                        "description": "Resale number or some additional info about the customer.",
                        "type": "string"
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a SalesTerm associated with this Customer object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "SecondaryTaxIdentifier": {
                        "description": "Also called UTR No. in ( UK ) , CST Reg No. ( IN ) also represents the tax registration number of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                        "type": "string"
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Default shipping address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "Source": {
                        "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                        "type": "string"
                      },
                      "Suffix": {
                        "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionReasonId": {
                        "description": "The tax exemption reason associated with this customer object. Applicable if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) for the company. Set TaxExemptionReasonId: to one of the following: Id Reason 1 Federal government 2 State government 3 Local government 4 Tribal government 5 Charitable organization 6 Religious organization 7 Educational organization 8 Hospital 9 Resale 10 Direct pay permit 11 Multiple points of use 12 Direct mail 13 Agricultural production 14 Industrial production / manufacturing 15 Foreign diplomat",
                        "type": "string"
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, transactions for this customer are taxable. Default behavior: true, if DefaultTaxCodeRef is defined or false if TaxExemptionReasonId is set."
                      },
                      "Title": {
                        "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "WebAddr": {
                        "$ref": "#/components/schemas/qbo_websiteaddress",
                        "description": "Website address."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this entity is currently enabled for use by QuickBooks. If there is an amount in Customer.Balance when setting this Customer object to inactive through the QuickBooks UI, a CreditMemo balancing transaction is created for the amount."
                      },
                      "AlternatePhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Alternate phone number."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create."
                      },
                      "BalanceWithJobs": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Cumulative open balance amount for the Customer (or Job) and all its sub-jobs. Cannot be written to QuickBooks."
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillWithParent": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this Customer object is billed with its parent. If false, or null the customer is not to be billed with its parent. This attribute is valid only if this entity is a Job or sub Customer."
                      },
                      "CompanyName": {
                        "description": "The name of the company associated with the person or organization.",
                        "type": "string"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the currency in which all amounts associated with this customer are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this customer is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency .",
                        "readOnly": true
                      },
                      "CustomerTypeRef": {
                        "$ref": "#/components/schemas/qbo_customertyperef",
                        "description": "Reference to the customer type assigned to a customer. This field is only returned if the customer is assigned a customer type."
                      },
                      "DefaultTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a default tax code associated with this Customer object. Reference is valid if Customer.Taxable is set to true; otherwise, it is ignored. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) the default tax code is set by the system and can not be overridden. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for DefaultTaxCodeRef.value and DefaultTaxCodeRef.name , respectively."
                      },
                      "DisplayName": {
                        "description": "The name of the person or organization as displayed. Must be unique across all Customer, Vendor, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating customer name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                        "type": "string"
                      },
                      "FamilyName": {
                        "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "Fax": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Fax number."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the object. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Customer:Job:Sub-job . System generated. Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "GivenName": {
                        "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IsProject": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, indicates this is a Project.",
                        "readOnly": true
                      },
                      "Job": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this is a Job or sub-customer. If false or null, this is a top level customer, not a Job or sub-customer."
                      },
                      "Level": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be level with respect to the parent. Constraints: up to 5 levels",
                        "readOnly": true
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "MiddleName": {
                        "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "Mobile": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Mobile phone number."
                      },
                      "Notes": {
                        "description": "Free form text describing the Customer.",
                        "type": "string"
                      },
                      "OpenBalanceDate": {
                        "description": "Date of the Open Balance for the create operation. Write-on-create.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Customer object that is the immediate parent of the Sub-Customer/Job in the hierarchical Customer:Job list. Required for the create operation if this object is a sub-customer or Job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this Customer object. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PreferredDeliveryMethod": {
                        "description": "Preferred delivery method. Values are Print, Email, or None.",
                        "type": "string"
                      },
                      "PrimaryEmailAddr": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Primary email address."
                      },
                      "PrimaryPhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Primary phone number."
                      },
                      "PrimaryTaxIdentifier": {
                        "description": "Also called Tax Reg. No in ( UK ) , ( CA ) , ( IN ) , ( AU ) represents the tax ID of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                        "type": "string"
                      },
                      "PrintOnCheckName": {
                        "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName. Constraints: Cannot be removed with sparse update.",
                        "type": "string"
                      },
                      "ResaleNum": {
                        "description": "Resale number or some additional info about the customer.",
                        "type": "string"
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a SalesTerm associated with this Customer object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "SecondaryTaxIdentifier": {
                        "description": "Also called UTR No. in ( UK ) , CST Reg No. ( IN ) also represents the tax registration number of the Person or Organization. This value is masked in responses, exposing only last five characters. For example, the ID of 123-45-6789 is returned as XXXXXX56789 .",
                        "type": "string"
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Default shipping address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "Source": {
                        "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                        "type": "string"
                      },
                      "Suffix": {
                        "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionReasonId": {
                        "description": "The tax exemption reason associated with this customer object. Applicable if automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) for the company. Set TaxExemptionReasonId: to one of the following: Id Reason 1 Federal government 2 State government 3 Local government 4 Tribal government 5 Charitable organization 6 Religious organization 7 Educational organization 8 Hospital 9 Resale 10 Direct pay permit 11 Multiple points of use 12 Direct mail 13 Agricultural production 14 Industrial production / manufacturing 15 Foreign diplomat",
                        "type": "string"
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, transactions for this customer are taxable. Default behavior: true, if DefaultTaxCodeRef is defined or false if TaxExemptionReasonId is set."
                      },
                      "Title": {
                        "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required.",
                        "type": "string"
                      },
                      "WebAddr": {
                        "$ref": "#/components/schemas/qbo_websiteaddress",
                        "description": "Website address."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Customer": {
                      "$ref": "#/components/schemas/output_qbo_customerresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a customer / Full update a customer / Sparse update a customer"
      }
    },
    "/v3/company/{realmId}/customer/{customerId}": {
      "get": {
        "operationId": "customers/get",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "customerId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Customer": {
                      "$ref": "#/components/schemas/output_qbo_customerresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a customer"
      }
    },
    "/v3/company/{realmId}/invoice": {
      "post": {
        "operationId": "invoices/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "const": "delete",
                  "type": "string"
                },
                {
                  "const": "void",
                  "type": "string"
                }
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AllowIPNPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                      },
                      "AllowOnlineACHPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlineAffirmPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlineCreditCardPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlinePayPalPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlinePayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "BillEmailBcc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                      },
                      "BillEmailCc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "Deposit": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The deposit made towards this invoice."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "InvoiceLink": {
                        "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                            "readOnly": true
                          },
                          {
                            "maxProperties": 0,
                            "type": "object"
                          }
                        ]
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TransactionLocationType": {
                        "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AllowIPNPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                      },
                      "AllowOnlineACHPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlineAffirmPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlineCreditCardPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlinePayPalPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlinePayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "BillEmailBcc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                      },
                      "BillEmailCc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "Deposit": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The deposit made towards this invoice."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "InvoiceLink": {
                        "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "The minimum line item required for the request is one of the following. SalesItemLine , GroupLine and Inline subtotal using DescriptionOnlyLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                            "readOnly": true
                          },
                          {
                            "maxProperties": 0,
                            "type": "object"
                          }
                        ]
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TransactionLocationType": {
                        "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "CustomerRef",
                      "Line"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AllowIPNPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                      },
                      "AllowOnlineACHPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlineAffirmPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlineCreditCardPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlinePayPalPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlinePayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "BillEmailBcc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                      },
                      "BillEmailCc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "Deposit": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The deposit made towards this invoice."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "InvoiceLink": {
                        "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "The minimum line item required for the request is one of the following. SalesItemLine , GroupLine and Inline subtotal using DescriptionOnlyLine",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                            "readOnly": true
                          },
                          {
                            "maxProperties": 0,
                            "type": "object"
                          }
                        ]
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TransactionLocationType": {
                        "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AllowIPNPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Flag to allow payments from legacy Intuit Payment Network (IPN). Provided to maintain backward compatibility and must always be set to false . Do not modify"
                      },
                      "AllowOnlineACHPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if this invoice can be paid with online bank transfers and corresponds to the Bank transfer check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online bank transfers. The Bank transfer check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with ACH. If set to false , online bank transfers are not allowed. The Bank transfer check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlineAffirmPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online Affirm payments are allowed for this invoice and corresponds to the Affirm check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for Affirm with an ACTIVE subscription status. If set to true , allow invoice to be paid with online Affirm payments. The Affirm check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with Affirm. If set to false , online Affirm payments are not allowed. The Affirm check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlineCreditCardPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online credit card payments are allowed for this invoice and corresponds to the Credit card check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true . If set to true , allow invoice to be paid with online credit card payments. The Credit card check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with credit cards. If set to false , online credit card payments are not allowed. The Credit card check box is not checked on the QuickBooks UI for this invoice."
                      },
                      "AllowOnlinePayPalPayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Specifies if online PayPal/Venmo payments are allowed for this invoice and corresponds to the PayPal check box on the QuickBooks UI. Active when the company is payments-enabled, i.e., Preferences.SalesFormsPrefs.ETransactionPaymentEnabled is set to true and the company has been onboarded for PayPal with an ACTIVE subscription status. If set to true , allow invoice to be paid with online PayPal payments. The PayPal check box is checked on the QuickBooks UI for this invoice. True by default if the company allows invoices to be paid with PayPal. If set to false , online PayPal payments are not allowed. The PayPal check box is not checked on the QuickBooks UI for this invoice. Defaults to the active subscription status. If a value is explicitly sent, that value is used. If no value is sent, the default value is used."
                      },
                      "AllowOnlinePayment": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Deprecated flag to allow online payments. In use before AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags existed and provided to maintain backward compatibility. If set to true , this invoice was created before AllowOnlinePayment was deprecated and denotes both CC and ACH payments are allowed. In addition, the AllowOnlineCreditCardPayment and AllowOnlineACHPayment flags must be set to true . If set to false , this invoice was created after the AllowOnlinePayment flag was deprecated and is not used. Do not modify."
                      },
                      "ApplyTaxAfterDiscount": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If false or null, calculate the sales tax first, and then apply the discount. If true, subtract the discount first and then calculate the sales tax."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The balance reflecting any payments made against the transaction. Initially set to the value of TotalAmt . A Balance of 0 indicates the invoice is fully paid. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks. If you process a linked transaction against a specific transaction, the balance value won't change. It will remain the same.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Bill-to address of the Invoice. If BillAddr is not specified, and a default Customer:BillingAddr is specified in QuickBooks for this customer, the default bill-to address is used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. If you update the CustomerRef , the address passed using BillAddr will be honored."
                      },
                      "BillEmail": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the e-mail address where the invoice is sent. If EmailStatus=NeedToSend , BillEmail is a required input."
                      },
                      "BillEmailBcc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the blind carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailBcc . If this email address is invalid, blind carbon copy email is not sent."
                      },
                      "BillEmailCc": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Identifies the carbon copy e-mail address where the invoice is sent. If not specified, this field is populated from that defined in Preferences.SalesFormsPrefs.SalesEmailCc . If this email address is invalid, carbon copy email is not sent."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class associated with the transaction. Available if Preferences.AccountingInfoPrefs.ClassTrackingPerTxn is set to true . Query the Class name list resource to determine the appropriate Class object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Applicable if multicurrency is enabled for the company."
                      },
                      "CustomField": {
                        "description": "One of, up to three custom fields for the transaction. Available for custom fields so configured for the company. Check Preferences.SalesFormsPrefs.CustomField and Preferences.VendorAndPurchasesPrefs.POCustomField for custom fields currenly configured. Click here to learn about managing custom fields.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_customfield"
                        },
                        "type": "array"
                      },
                      "CustomerMemo": {
                        "$ref": "#/components/schemas/qbo_memoref",
                        "description": "User-entered message to the customer; this message is visible to end user on their transactions."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DeliveryInfo": {
                        "$ref": "#/components/schemas/qbo_deliveryinfo",
                        "description": "Email delivery information. Returned when a request has been made to deliver email with the send operation.",
                        "readOnly": true
                      },
                      "DepartmentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to a Department object specifying the location of the transaction. Available if Preferences.AccountingInfoPrefs.TrackDepartments is set to true . Query the Department name list resource to determine the appropriate department object for this reference. Use Department.Id and Department.Name from that object for DepartmentRef.value and DepartmentRef.name , respectively."
                      },
                      "Deposit": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The deposit made towards this invoice."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Account to which money is deposited. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepositToAccountRef.name , respectively. Before you can use this field ensure that the company allows deposits in their invoices first. This can be found by querying the Preferences endpoint . SalesFormsPrefs.AllowDeposit must be equal to true. If you do not specify this account the payment is applied to the Undeposited Funds account."
                      },
                      "DocNumber": {
                        "description": "Reference number for the transaction. If not explicitly provided at create time, this field is populated based on the setting of Preferences:CustomTxnNumber as follows: If Preferences:CustomTxnNumber is true a custom value can be provided. If no value is supplied, the resulting DocNumber is null. If Preferences:CustomTxnNumber is false, resulting DocNumber is system generated by incrementing the last number by 1. If Preferences:CustomTxnNumber is false then do not send a value as it can lead to unwanted duplicates. If a DocNumber value is sent for an Update operation, then it just updates that particular invoice and does not alter the internal system DocNumber. Note: DocNumber is an optional field for all locales except France. For France locale if Preferences:CustomTxnNumber is enabled it will not be automatically generated and is a required field. If a duplicate DocNumber needs to be supplied, add the query parameter name/value pair, include=allowduplicatedocnum to the URI.",
                        "type": "string"
                      },
                      "DueDate": {
                        "description": "Date when the payment of the transaction is due. If date is not provided, the number of days specified in SalesTermRef added the transaction date will be used.",
                        "type": "string"
                      },
                      "EmailStatus": {
                        "description": "Email status of the invoice. Valid values: NotSet , NeedToSend , EmailSent",
                        "type": "string"
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company."
                      },
                      "FreeFormAddress": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Denotes how ShipAddr is stored: formatted or unformatted. The value of this flag is system defined based on format of shipping address at object create time. If set to false , shipping address is returned in a formatted style using City, Country, CountrySubDivisionCode, Postal code. If set to true , shipping address is returned in an unformatted style using Line1 through Line5 attributes."
                      },
                      "GlobalTaxCalculation": {
                        "description": "Method in which tax is applied. Allowed values are: TaxExcluded , TaxInclusive , and NotApplicable . Not applicable to US companies; required for non-US companies.",
                        "type": "string"
                      },
                      "HomeBalance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Convenience field containing the amount in Balance expressed in terms of the home currency. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "HomeTotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Total amount of the transaction in the home currency. Includes the total of all the charges, allowances and taxes. Calculated by QuickBooks business logic. Value is valid only when CurrencyRef is specified. Applicable if multicurrency is enabled for the company.",
                        "readOnly": true
                      },
                      "Id": {
                        "type": "string"
                      },
                      "InvoiceLink": {
                        "description": "Sharable link for the invoice sent to external customers. The link is generated only for invoices with online payment enabled and having a valid customer email address. Include query param `include=invoiceLink` to get the link back on query response.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Individual line items of a transaction. Valid Line types include SalesItemLine , GroupLine , DescriptionOnlyLine (also used for inline Subtotal lines), DiscountLine and SubTotalLine (used for the overall transaction). If the transaction is taxable there is a limit of 750 lines per transaction.",
                        "items": {
                          "anyOf": [
                            {
                              "$ref": "#/components/schemas/qbo_salesitemline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_groupline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_descriptiononlyline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_discountline"
                            },
                            {
                              "$ref": "#/components/schemas/qbo_subtotalline"
                            }
                          ]
                        },
                        "type": "array"
                      },
                      "LinkedTxn": {
                        "description": "Zero or more related transactions to this Invoice object. The following linked relationships are supported: Links to Estimate and TimeActivity objects can be established directly to this Invoice object with UI or with the API. Create, Read, Update, and Query operations are avaialble at the API level for these types of links. Only one link can be made to an Estimate . Progress Invoicing is not supported via the API. Links to expenses incurred on behalf of the customer are returned in the response with LinkedTxn.TxnType set to ReimburseCharge , ChargeCredit or StatementCharge corresponding to billable customer expenses of type Cash , Delayed Credit , and Delayed Charge , respectively. Links to these types of transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Links to payments applied to an Invoice object are returned in the response with LinkedTxn.TxnType set to Payment . Links to Payment transactions are established within the QuickBooks UI, only, and are available as read-only at the API level. Use LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PrintStatus": {
                        "description": "Printing status of the invoice. Valid values: NotSet , NeedToPrint , PrintComplete .",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction. This note does not appear on the invoice to the customer. This field maps to the Statement Memo field on the Invoice form in the QuickBooks Online UI.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "RecurDataRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "A reference to the Recurring Transaction. It captures what recurring transaction template the Invoice was created from.",
                        "readOnly": true
                      },
                      "SalesTermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the sales term associated with the transaction. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for SalesTermRef.value and SalesTermRef.name , respectively."
                      },
                      "ShipAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods must be shipped. If ShipAddr is not specified, and a default Customer:ShippingAddr is specified in QuickBooks for this customer, the default ship-to address will be used by QuickBooks. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipDate": {
                        "description": "Date for delivery of goods or services.",
                        "type": "string"
                      },
                      "ShipFromAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Identifies the address where the goods are shipped from. For transactions without shipping, it represents the address where the sale took place. If automated sales tax is enabled ( Preferences.TaxPrefs.PartnerTaxEnabled is set to true ) and automated tax calculations are being used, this field is required for an accurate sales tax calculation. For international addresses - countries should be passed as 3 ISO alpha-3 characters or the full name of the country. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "ShipMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string. Reference to the ShipMethod associated with the transaction. There is no shipping method list. Reference resolves to a string."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "anyOf": [
                          {
                            "$ref": "#/components/schemas/qbo_referencetype",
                            "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                            "readOnly": true
                          },
                          {
                            "maxProperties": 0,
                            "type": "object"
                          }
                        ]
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. Calculated by QuickBooks business logic; any value you supply is over-written by QuickBooks.",
                        "readOnly": true
                      },
                      "TrackingNum": {
                        "description": "Shipping provider's tracking number for the delivery of the goods associated with the transaction.",
                        "type": "string"
                      },
                      "TransactionLocationType": {
                        "description": "The account location. For UAE, valid values include ABUDHABI AJMAN SHARJAH DUBAI FUJAIRAH RAS_AL_KHAIMAH UMM_AL_QUWAIN OTHER_GCC",
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. yyyy/MM/dd is the valid date format. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnTaxDetail": {
                        "$ref": "#/components/schemas/qbo_txntaxdetail",
                        "description": "This data type provides information for taxes charged on the transaction as a whole. It captures the details sales taxes calculated for the transaction based on the tax codes referenced by the transaction. This can be calculated by QuickBooks business logic or you may supply it when adding a transaction. See Global tax model for more information about this element. If sales tax is disabled ( Preferences.TaxPrefs.UsingSalesTax is set to false ) then TxnTaxDetail is ignored and not stored."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "const": true,
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken",
                      "sparse"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Invoice": {
                      "$ref": "#/components/schemas/output_qbo_invoiceresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete an invoice"
      }
    },
    "/v3/company/{realmId}/invoice/{invoiceId}": {
      "get": {
        "operationId": "invoices/get",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "invoiceId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Invoice": {
                      "$ref": "#/components/schemas/output_qbo_invoiceresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read an invoice"
      }
    },
    "/v3/company/{realmId}/invoice/{invoiceId}/send": {
      "post": {
        "operationId": "invoices/send",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "invoiceId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sendTo",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Invoice": {
                      "$ref": "#/components/schemas/output_qbo_invoiceresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Send an invoice"
      }
    },
    "/v3/company/{realmId}/item": {
      "post": {
        "operationId": "items/create",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, the object is currently enabled for use by QuickBooks."
                      },
                      "AssetAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CustomExtensions": {
                        "$ref": "#/components/schemas/qbo_customextensions",
                        "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                      },
                      "Description": {
                        "description": "Description of the item.",
                        "type": "string"
                      },
                      "ExpenseAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. Required for Inventory , NonInventory , and Service item types."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Item:SubItem . Returned from an existing object and not input on a new object.Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "IncomeAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. Required for Inventory and Service item types."
                      },
                      "InvStartDate": {
                        "description": "Date of opening balance for the inventory transaction. For read operations, the date returned in this field is always the originally provided inventory start date. For update operations, the date supplied is interpreted as the inventory adjust date, is stored as such in the underlying data model, and is reflected in the QuickBooks Online UI for the object. The inventory adjust date is not exposed for read operations through the API. Required for Inventory type items.",
                        "type": "string"
                      },
                      "Level": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be the next level with respect to the parent. Limited to 5 levels.",
                        "readOnly": true
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "Name of the category.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The immediate parent of the sub item in the hierarchical Category:Sub-category list. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PrefVendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PurchaseCost": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
                      },
                      "PurchaseDesc": {
                        "description": "Purchase description for the item.",
                        "type": "string"
                      },
                      "PurchaseTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
                      },
                      "PurchaseTaxIncluded": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
                      },
                      "QtyOnHand": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
                      },
                      "ReorderPoint": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
                      },
                      "SalesTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
                      },
                      "SalesTaxIncluded": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
                      },
                      "Sku": {
                        "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
                        "type": "string"
                      },
                      "Source": {
                        "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                        "type": "string"
                      },
                      "SubItem": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "true --The object is a sub-category. false --The object is a top-level category (default). Sub-categories can be nested to a maximum depth of three levels below a top-level category. Required for sub-category."
                      },
                      "SyncToken": {
                        "description": "Version number of the entity. Required for the update operation.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxClassificationRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
                      },
                      "TrackQtyOnHand": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
                      },
                      "Type": {
                        "description": "Must be set to the literal string, Category .",
                        "type": "string"
                      },
                      "UnitPrice": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Type",
                      "Name"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, the object is currently enabled for use by QuickBooks."
                      },
                      "AssetAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Must be an account with account type of Other Current Asset . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CustomExtensions": {
                        "$ref": "#/components/schemas/qbo_customextensions",
                        "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                      },
                      "Description": {
                        "description": "Description of the item.",
                        "type": "string"
                      },
                      "ExpenseAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. For France locales: This is an optional field. This is the purchase account id, If not provided it defaults to the default purchase account: 605100 and 601100 are the default expense accounts used for Service and Product type of item, respectively. Required for Inventory , NonInventory , and Service item types."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Item:SubItem . Returned from an existing object and not input on a new object.Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "description": "Unique Identifier for an Intuit entity (object). Required for the update operation.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "IncomeAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. For France locales: This is an optional field. This is the sales account id, If not provided it defaults to the default sales account: 706100 and 707100 are the default expense accounts used for Service and Product type of item, respectively. Required for Inventory and Service item types."
                      },
                      "InvStartDate": {
                        "description": "Date of opening balance for the inventory transaction. Required when creating an Item.Type=Inventory . Required for Inventory item types.",
                        "type": "string"
                      },
                      "Level": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be the next level with respect to the parent. Limited to 5 levels.",
                        "readOnly": true
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "Name of the item. This value must be unique, at least one character in length, and cannot include tabs, new lines, or colons. Required for create.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The immediate parent of the sub item in the hierarchical Item:SubItem list. If SubItem is true, then ParenRef is required. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PrefVendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PurchaseCost": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
                      },
                      "PurchaseDesc": {
                        "description": "Purchase description for the item.",
                        "type": "string"
                      },
                      "PurchaseTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
                      },
                      "PurchaseTaxIncluded": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
                      },
                      "QtyOnHand": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
                      },
                      "ReorderPoint": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
                      },
                      "SalesTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
                      },
                      "SalesTaxIncluded": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
                      },
                      "Sku": {
                        "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
                        "type": "string"
                      },
                      "Source": {
                        "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                        "type": "string"
                      },
                      "SubItem": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this is a sub item. If false or null, this is a top-level item. Creating inventory hierarchies with traditional inventory items is being phased out in lieu of using categories and sub categories."
                      },
                      "SyncToken": {
                        "description": "Version number of the entity. Required for the update operation.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxClassificationRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
                      },
                      "TrackQtyOnHand": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
                      },
                      "Type": {
                        "description": "Classification that specifies the use of this item. See the description at the top of the Item entity page for details about supported item types. Used for goods the company sells and buys that are tracked as inventory. Service --Default setting when TrackQtyOnHand , InvStartDate , and AssetAccountRef are not specified. Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. This field is required to be explicitly set with one of the following: Inventory --Used for goods the company sells and buys that are tracked as inventory. Service --Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. NonInventory --Use for goods the company sells and buys that are not tracked as inventory. For example, office supplies or goods bought on behalf of the customer. .",
                        "type": "string"
                      },
                      "UnitPrice": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Name"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, the object is currently enabled for use by QuickBooks."
                      },
                      "AssetAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CustomExtensions": {
                        "$ref": "#/components/schemas/qbo_customextensions",
                        "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                      },
                      "Description": {
                        "description": "Description of the item.",
                        "type": "string"
                      },
                      "ExpenseAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. Required for Inventory , NonInventory , and Service item types."
                      },
                      "FullyQualifiedName": {
                        "description": "Fully qualified name of the entity. The fully qualified name prepends the topmost parent, followed by each sub element separated by colons. Takes the form of Item:SubItem . Returned from an existing object and not input on a new object.Limited to 5 levels.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IncomeAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. Required for Inventory and Service item types."
                      },
                      "InvStartDate": {
                        "description": "Date of opening balance for the inventory transaction. For read operations, the date returned in this field is always the originally provided inventory start date. For update operations, the date supplied is interpreted as the inventory adjust date, is stored as such in the underlying data model, and is reflected in the QuickBooks Online UI for the object. The inventory adjust date is not exposed for read operations through the API. Required for Inventory type items.",
                        "type": "string"
                      },
                      "Level": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the level of the hierarchy in which the entity is located. Zero specifies the top level of the hierarchy; anything above will be the next level with respect to the parent. Limited to 5 levels.",
                        "readOnly": true
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "Name of the item. This value is unique.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The immediate parent of the sub item in the hierarchical Item:SubItem list. If SubItem is true, then ParenRef is required. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PrefVendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PurchaseCost": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
                      },
                      "PurchaseDesc": {
                        "description": "Purchase description for the item.",
                        "type": "string"
                      },
                      "PurchaseTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
                      },
                      "PurchaseTaxIncluded": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
                      },
                      "QtyOnHand": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
                      },
                      "ReorderPoint": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
                      },
                      "SalesTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
                      },
                      "SalesTaxIncluded": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
                      },
                      "Sku": {
                        "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
                        "type": "string"
                      },
                      "Source": {
                        "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                        "type": "string"
                      },
                      "SubItem": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this is a sub item. If false or null, this is a top-level item. Creating inventory hierarchies with traditional inventory items is being phased out in lieu of using categories and sub categories."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxClassificationRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
                      },
                      "TrackQtyOnHand": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
                      },
                      "Type": {
                        "description": "Classification that specifies the use of this item. See the description at the top of the Item entity page for details about supported item types. This field is required to be explicitly set with one of the following: Inventory --Used for goods the company sells and buys that are tracked as inventory. Service --Used for non-tangible goods the company sells and buys that are not tracked as inventory. For example, specialized labor, consulting hours, and professional fees. NonInventory --Use for goods the company sells and buys that are not tracked as inventory. For example, office supplies or goods bought on behalf of the customer. .",
                        "type": "string"
                      },
                      "UnitPrice": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "For categories, this is always set to true ."
                      },
                      "AssetAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Inventory Asset account that tracks the current value of the inventory. If the same account is used for all inventory items, the current balance of this account will represent the current total value of the inventory. Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for AssetAccountRef.value and AssetAccountRef.name , respectively. Required for Inventory item types."
                      },
                      "ClassRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Class for the item. Query the Class name list resource to determine the appropriate object for this reference. Use Class.Id and Class.Name from that object for ClassRef.value and ClassRef.name , respectively."
                      },
                      "CustomExtensions": {
                        "$ref": "#/components/schemas/qbo_customextensions",
                        "description": "Array of custom extension objects that associate additional attributes with the item. The ExtensionType field specifies the type of extension. The currently supported value is DIMENSION . The AssociatedValues array contains key/value pairs referencing Dimensions DefinitionID/Dimension ValueID. Multiple key/value pairs per extension type are supported. This field is designed to support additional extension types in the future. Dimensions is available for Intuit Enterprise Suite."
                      },
                      "Description": {
                        "description": "Description of the item.",
                        "type": "string"
                      },
                      "ExpenseAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the expense account used to pay the vendor for this item. Must be an account with account type of Cost of Goods Sold . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for ExpenseAccountRef.value and ExpenseAccountRef.name , respectively. Required for Inventory , NonInventory , and Service item types."
                      },
                      "FullyQualifiedName": {
                        "description": "Colon-separated list of the top-level category, followed by each sub-category in the hierarchy. Takes the form of Category:SubCategory1:SubCategory2:... . Limited to 5 levels: 4 category levels with an inventory, non-inventory, or service item as the 5th.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "IncomeAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the posting account, that is, the account that records the proceeds from the sale of this item. Must be an account with account type of Sales of Product Income . Query the Account name list resource to determine the appropriate Account object for this reference. Use Account.Id and Account.Name from that object for IncomeAccountRef.value and IncomeAccountRef.name , respectively. Required for Inventory and Service item types."
                      },
                      "InvStartDate": {
                        "description": "Date of opening balance for the inventory transaction. For read operations, the date returned in this field is always the originally provided inventory start date. For update operations, the date supplied is interpreted as the inventory adjust date, is stored as such in the underlying data model, and is reflected in the QuickBooks Online UI for the object. The inventory adjust date is not exposed for read operations through the API. Required for Inventory type items.",
                        "type": "string"
                      },
                      "Level": {
                        "anyOf": [
                          {
                            "type": "integer"
                          },
                          {
                            "pattern": "^-?[0-9]+$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the level of the hierarchy in which the object is located. First sub-category level below the top-most category is 1. Returned in the response body only when SubItem is set to true . Sub-categories can be nested to a maximum depth of three levels below a top-level category.",
                        "readOnly": true
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "Name": {
                        "description": "Name of the category.",
                        "type": "string"
                      },
                      "ParentRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "The immediate parent of the sub item in the hierarchical Category:Sub-category list. If SubItem is true, then ParenRef is required. Query the Item name list resource to determine the appropriate object for this reference. Use Item.Id and Item.Name from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PrefVendorRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the preferred vendor of this item. Query the Vendor name list resource to determine the appropriate object for this reference. Use Vendor.Id and Vendor.Name from that object for ParentRef.value and ParentRef.name , respectively."
                      },
                      "PurchaseCost": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Amount paid when buying or ordering the item, as expressed in the home currency."
                      },
                      "PurchaseDesc": {
                        "description": "Purchase description for the item.",
                        "type": "string"
                      },
                      "PurchaseTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the purchase tax code for the item. Applicable to Service, Other Charge, and Product (Non-Inventory) item types. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for PurchaseTaxCodeRef.value and PurchaseTaxCodeRef.name , respectively."
                      },
                      "PurchaseTaxIncluded": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the purchase tax is included in the item amount, and therefore is not calculated for the transaction."
                      },
                      "QtyOnHand": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Current quantity of the Inventory items available for sale. Not used for Service or NonInventory type items.Required for Inventory type items."
                      },
                      "ReorderPoint": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The minimum quantity of a particular inventory item that you need to restock at any given time. The ReorderPoint value cannot be set to null for sparse updates(sparse=true). It can be set to null only for full updates."
                      },
                      "SalesTaxCodeRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "For non-US companies only. Reference to the sales tax code for the Sales item. Applicable to Service and Sales item types only. Query the TaxCode name list resource to determine the appropriate TaxCode object for this reference. Use TaxCode.Id and TaxCode.Name from that object for SalesTaxCodeRef.value and SalesTaxCodeRef.name , respectively."
                      },
                      "SalesTaxIncluded": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if the sales tax is included in the item amount, and therefore is not calculated for the transaction."
                      },
                      "Sku": {
                        "description": "The stock keeping unit (SKU) for this Item. This is a company-defined identifier for an item or product used in tracking inventory.",
                        "type": "string"
                      },
                      "Source": {
                        "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                        "type": "string"
                      },
                      "SubItem": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "true --The object is a sub-category. false --The object is a top-level category (default). Sub-categories can be nested to a maximum depth of three levels below a top-level category. Required if this is a sub-category object."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxClassificationRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Tax classification segregates different items into different classifications and the tax classification is one of the key parameters to determine appropriate tax on transactions involving items. Tax classifications are sourced by either tax governing authorities as in Malaysia or externally like Exactor. 'Fuel', 'Garments' and 'Soft drinks' are a few examples of tax classification in layman terms. User can choose a specific tax classification for an item while creating it. A level 1 tax classification cannot be associated to an Item."
                      },
                      "Taxable": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, transactions for this item are taxable. Applicable to US companies, only."
                      },
                      "TrackQtyOnHand": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if there is quantity on hand to be tracked. Once this value is true, it cannot be updated to false. Applicable for items of type Inventory . Not applicable for Service or NonInventory item types."
                      },
                      "Type": {
                        "description": "Must be set to the literal string, Category .",
                        "type": "string"
                      },
                      "UnitPrice": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Corresponds to the Price/Rate column on the QuickBooks Online UI to specify either unit price, a discount, or a tax rate for item. If used for unit price, the monetary value of the service or product, as expressed in the home currency. If used for a discount or tax rate, express the percentage as a fraction. For example, specify 0.4 for 40% tax."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "additionalProperties": true,
                      "properties": {
                        "Item": {
                          "$ref": "#/components/schemas/output_qbo_categoryresponse"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "Item": {
                          "$ref": "#/components/schemas/output_qbo_itemresponse"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a category / Create an item / Full update an item / Update a category"
      }
    },
    "/v3/company/{realmId}/item/{itemId}": {
      "get": {
        "operationId": "items/get",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "itemId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Item": {
                      "$ref": "#/components/schemas/output_qbo_itemresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a bundle / Read a category / Read an item"
      }
    },
    "/v3/company/{realmId}/payment": {
      "post": {
        "operationId": "payments/delete",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "operation",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "const": "delete",
                  "type": "string"
                },
                {
                  "const": "update",
                  "type": "string"
                }
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a payment received by credit card. Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the account to be used for this payment. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Zero or more transactions accounting for this payment. Values for Line.LinkedTxn.TxnType can be one of the following: Expense --Payment is reimbursement for expense paid by cash made on behalf of the customer Check --Payment is reimbursement for expense paid by check made on behalf of the customer CreditCardCredit --Payment is reimbursement for a credit card credit made on behalf of the customer JournalEntry --Payment is linked to the representative journal entry CreditMemo --Payment is linked to the credit memo the customer has with the business Invoice --The invoice to which payment is applied Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linelinkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, Check # for a check, envelope # for a cash donation.",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "UnappliedAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the amount that has not been applied to pay amounts owed for sales transactions.",
                        "readOnly": true
                      },
                      "domain": {
                        "type": "string"
                      },
                      "id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "ARAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype"
                      },
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a payment received by credit card. Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the account to be used for this payment. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "Line": {
                        "description": "Zero or more transactions accounting for this payment. Values for Line.LinkedTxn.TxnType can be one of the following: Expense --Payment is reimbursement for expense paid by cash made on behalf of the customer Check --Payment is reimbursement for expense paid by check made on behalf of the customer CreditCardCredit --Payment is reimbursement for a credit card credit made on behalf of the customer JournalEntry --Payment is linked to the representative journal entry CreditMemo --Payment is linked to the credit memo the customer has with the business Invoice --The invoice to which payment is applied Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linelinkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, Check # for a check, envelope # for a cash donation.",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction.",
                        "type": "string"
                      },
                      "ProcessPayment": {
                        "type": "boolean"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes."
                      },
                      "TransactionLocationType": {
                        "type": "string"
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "TxnStatus": {
                        "type": "string"
                      },
                      "UnappliedAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the amount that has not been applied to pay amounts owed for sales transactions.",
                        "readOnly": true
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      },
                      "status": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "TotalAmt",
                      "CustomerRef"
                    ],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "CreditCardPayment": {
                        "$ref": "#/components/schemas/qbo_creditcardpayment",
                        "description": "Information about a payment received by credit card. Inject with data only if the payment was transacted through Intuit Payments API."
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts on the associated transaction are expressed. This must be defined if multicurrency is enabled for the company. Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true . Read more about multicurrency support here . Required if multicurrency is enabled for the company."
                      },
                      "CustomerRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a customer or job. Query the Customer name list resource to determine the appropriate Customer object for this reference. Use Customer.Id and Customer.DisplayName from that object for CustomerRef.value and CustomerRef.name , respectively."
                      },
                      "DepositToAccountRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Identifies the account to be used for this payment. Query the Account name list resource to determine the appropriate Account object for this reference, where Account.AccountType is Other Current Asset or Bank . Use Account.Id and Account.Name from that object for DepositToAccountRef.value and DepostiToAccountRef.name , respectively. If you do not specify this account, payment is applied to the Undeposited Funds account."
                      },
                      "ExchangeRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "The number of home currency units it takes to equal one unit of currency specified by CurrencyRef . Applicable if multicurrency is enabled for the company"
                      },
                      "Id": {
                        "type": "string"
                      },
                      "Line": {
                        "description": "Zero or more transactions accounting for this payment. Values for Line.LinkedTxn.TxnType can be one of the following: Expense --Payment is reimbursement for expense paid by cash made on behalf of the customer Check --Payment is reimbursement for expense paid by check made on behalf of the customer CreditCardCredit --Payment is reimbursement for a credit card credit made on behalf of the customer JournalEntry --Payment is linked to the representative journal entry CreditMemo --Payment is linked to the credit memo the customer has with the business Invoice --The invoice to which payment is applied Use Line.LinkedTxn.TxnId as the ID in a separate read request for the specific resource to retrieve details of the linked object.",
                        "items": {
                          "$ref": "#/components/schemas/qbo_linelinkedtxn"
                        },
                        "type": "array"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the entity. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "PaymentMethodRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a PaymentMethod associated with this transaction. Query the PaymentMethod name list resource to determine the appropriate PaymentMethod object for this reference. Use PaymentMethod.Id and PaymentMethod.Name from that object for PaymentMethodRef.value and PaymentMethodRef.name , respectively."
                      },
                      "PaymentRefNum": {
                        "description": "The reference number for the payment received. For example, Check # for a check, envelope # for a cash donation.",
                        "type": "string"
                      },
                      "PrivateNote": {
                        "description": "User entered, organization-private note about the transaction.",
                        "type": "string"
                      },
                      "ProjectRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the Project ID associated with this transaction."
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "TaxExemptionRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to the TaxExepmtion ID associated with this object. Available for companies that have automated sales tax enabled. TaxExemptionRef.Name : The Tax Exemption Id for the customer to which this object is associated. This Id is typically issued by the state. TaxExemptionRef.value : The system-generated Id of the exemption type. For internal use only",
                        "readOnly": true
                      },
                      "TotalAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the total amount of the transaction. This includes the total of all the charges, allowances, and taxes. If you process a linked refund transaction against a specific transaction, the totalAmt value won't change. It will remain the same. However, voiding the linked refund will change the totalAmt value to O."
                      },
                      "TxnDate": {
                        "description": "The date entered by the user when this transaction occurred. For posting transactions, this is the posting date that affects the financial statements. If the date is not supplied, the current date on the server is used. Sort order is ASC by default.",
                        "type": "string"
                      },
                      "TxnSource": {
                        "description": "Used internally to specify originating source of a credit card transaction.",
                        "type": "string"
                      },
                      "UnappliedAmt": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Indicates the amount that has not been applied to pay amounts owed for sales transactions.",
                        "readOnly": true
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Payment": {
                      "$ref": "#/components/schemas/output_qbo_paymentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Delete a payment"
      }
    },
    "/v3/company/{realmId}/payment/{paymentId}": {
      "get": {
        "operationId": "payments/get",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "paymentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Payment": {
                      "$ref": "#/components/schemas/output_qbo_paymentresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a payment"
      }
    },
    "/v3/company/{realmId}/preferences": {
      "get": {
        "operationId": "preferences/get",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Preferences": {
                      "$ref": "#/components/schemas/output_qbo_preferencesresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read preferences"
      }
    },
    "/v3/company/{realmId}/query": {
      "get": {
        "operationId": "query",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Account": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_accountresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Attachable": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_attachableresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Bill": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_billresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "BillPayment": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_billpaymentresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Budget": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_budgetresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Class": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_classresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "CompanyCurrency": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_companycurrencyresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "CompanyInfo": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_companyinforesponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "CreditCardPayment": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_creditcardpaymentresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "CreditMemo": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_creditmemoresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Customer": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_customerresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "CustomerType": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_customertyperesponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Department": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_departmentresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Deposit": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_depositresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Employee": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_employeeresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Estimate": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_estimateresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Exchangerate": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_exchangerateresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Invoice": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_invoiceresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Item": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_itemresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "JournalEntry": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_journalentryresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Payment": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_paymentresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "PaymentMethod": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_paymentmethodresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Preferences": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_preferencesresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Purchase": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_purchaseresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "PurchaseOrder": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_purchaseorderresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "RecurringTransaction": {
                              "items": {
                                "additionalProperties": true,
                                "properties": {
                                  "Bill": {
                                    "$ref": "#/components/schemas/output_qbo_billresponse"
                                  },
                                  "Deposit": {
                                    "$ref": "#/components/schemas/output_qbo_depositresponse"
                                  },
                                  "Estimate": {
                                    "$ref": "#/components/schemas/output_qbo_estimateresponse"
                                  },
                                  "Invoice": {
                                    "$ref": "#/components/schemas/output_qbo_invoiceresponse"
                                  },
                                  "JournalEntry": {
                                    "$ref": "#/components/schemas/output_qbo_journalentryresponse"
                                  },
                                  "Purchase": {
                                    "$ref": "#/components/schemas/output_qbo_purchaseresponse"
                                  },
                                  "RefundReceipt": {
                                    "$ref": "#/components/schemas/output_qbo_refundreceiptresponse"
                                  },
                                  "SalesReceipt": {
                                    "$ref": "#/components/schemas/output_qbo_salesreceiptresponse"
                                  },
                                  "Transfer": {
                                    "$ref": "#/components/schemas/output_qbo_transferresponse"
                                  },
                                  "VendorCredit": {
                                    "$ref": "#/components/schemas/output_qbo_vendorcreditresponse"
                                  }
                                },
                                "type": "object"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "RefundReceipt": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_refundreceiptresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "ReimburseCharge": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_reimbursechargeresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "SalesReceipt": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_salesreceiptresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "TaxAgency": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_taxagencyresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "TaxCode": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_taxcoderesponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "TaxPayment": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_taxpaymentresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "TaxRate": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_taxrateresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Term": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_termresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "TimeActivity": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_timeactivityresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Transfer": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_transferresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "Vendor": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_vendorresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    {
                      "additionalProperties": true,
                      "properties": {
                        "QueryResponse": {
                          "additionalProperties": true,
                          "properties": {
                            "VendorCredit": {
                              "items": {
                                "$ref": "#/components/schemas/output_qbo_vendorcreditresponse"
                              },
                              "type": "array"
                            },
                            "maxResults": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "startPosition": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            },
                            "totalCount": {
                              "anyOf": [
                                {
                                  "type": "integer"
                                },
                                {
                                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$",
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "type": "object"
                        },
                        "time": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query an account / Query an attachable / Query a bill / Query a billpayment / Query a budget / Query a class / Query a companycurrency / Query companyinfo / Query a creditcardpayment / Query a credit memo / Query a customer / Query a customertype / Query a department / Query a deposit / Query an employee / Query an estimate / Query exchangerate objects. / Query an invoice / Query a bundle / Query a category / Query an item / Query a journalentry / Query a payment / Query a paymentmethod / Query preferences / Query a purchase / Query a purchase order / Query a recurring transaction / Query a refund receipt / Query a reimburse charge / Query a salesreceipt / Query a taxagency / Query a taxcode / Query taxpayment / Query a taxrate / Query a term / Query a timeactivity object / Query an transfer / Query a vendor / Query a vendorcredit"
      }
    },
    "/v3/company/{realmId}/reports/BalanceSheet": {
      "get": {
        "operationId": "reports/balance-sheet",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "adjusted_gain_loss",
            "required": false,
            "schema": {
              "description": "Specifies whether unrealized gain and losses are included in the report. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "item",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_balancesheetreporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmId}/reports/ProfitAndLoss": {
      "get": {
        "operationId": "reports/profit-and-loss",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "accounting_method",
            "required": false,
            "schema": {
              "description": "The accounting method used in the report. Supported Values: Cash , Accrual",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "adjusted_gain_loss",
            "required": false,
            "schema": {
              "description": "Specifies whether unrealized gain and losses are included in the report. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "class",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified classes if so configured in the company file. Supported Values: One or more comma separated class IDs as returned in the attribute, Class.Id , of the Class entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "customer",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified customers. Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id , of the Customer object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "date_macro",
            "required": false,
            "schema": {
              "description": "Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range. Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "department",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified departments if so configured in the company file. Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "end_date",
            "required": false,
            "schema": {
              "description": "The end date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "item",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified items. Supported Values: One or more comma separated item IDs as returned in the attribute, Item.Id ,of the Item entity response code.",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "qzurl",
            "required": false,
            "schema": {
              "description": "Specifies whether Quick Zoom URL information should be generated for rows in the report. Quick Zoom URL is a hyperlink to another report containing further details about the particular column of data. Supported Values: true , false",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "sort_order",
            "required": false,
            "schema": {
              "description": "The sort order. Supported Values: ascend , descend",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "start_date",
            "required": false,
            "schema": {
              "description": "The start date of the report, in the format YYYY-MM-DD . start_date must be less than end_date . Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "summarize_column_by",
            "required": false,
            "schema": {
              "description": "The criteria by which to group the report results. Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "vendor",
            "required": false,
            "schema": {
              "description": "Filters report contents to include information for specified vendors. Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id , of the Vendor object response code.",
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output_qbo_profitandlossreporttoplevel"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Query a report"
      }
    },
    "/v3/company/{realmId}/vendor": {
      "post": {
        "operationId": "vendors/create",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AcctNum": {
                        "description": "Name or number of the account associated with this vendor.",
                        "type": "string"
                      },
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this object is currently enabled for use by QuickBooks."
                      },
                      "AlternatePhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Alternate phone number."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create, read-only otherwise.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "BillRate can be set to specify this vendor's hourly billing rate."
                      },
                      "CompanyName": {
                        "description": "The name of the company associated with the person or organization.",
                        "type": "string"
                      },
                      "CostRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Pay rate of the vendor"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts associated with this vendor are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this vendor is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency . Read-only after object is created.",
                        "readOnly": true
                      },
                      "DisplayName": {
                        "description": "The name of the vendor as displayed. Must be unique across all Vendor, Customer, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating vendor name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                        "type": "string"
                      },
                      "FamilyName": {
                        "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "Fax": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Fax number."
                      },
                      "GivenName": {
                        "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "HasTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicate if the vendor has TPAR enabled. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Id": {
                        "description": "Unique identifier for this object.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "MiddleName": {
                        "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "Mobile": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Mobile phone number."
                      },
                      "OtherContactInfo": {
                        "$ref": "#/components/schemas/qbo_contactinfo",
                        "description": "List of ContactInfo entities of any contact info type."
                      },
                      "PrimaryEmailAddr": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Primary email address."
                      },
                      "PrimaryPhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Primary phone number."
                      },
                      "PrintOnCheckName": {
                        "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update.",
                        "type": "string"
                      },
                      "Source": {
                        "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                        "type": "string"
                      },
                      "Suffix": {
                        "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "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.",
                        "readOnly": true,
                        "type": "string"
                      },
                      "T4AEligible": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if vendor is T4A eligible. Valid for CA locale"
                      },
                      "T5018Eligible": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if vendor is T5018 eligible. Valid for CA locale"
                      },
                      "TaxIdentifier": {
                        "description": "The tax ID of the Person or Organization. The value is masked in responses, exposing only last four characters. For example, the ID of 123-45-6789 is returned as XXXXXXX6789 .",
                        "type": "string"
                      },
                      "TermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a default Term associated with this Vendor object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for TermRef.value and TermRef.name , respectively."
                      },
                      "Title": {
                        "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , Suffix , or FullyQualifiedName attributes are required during create.",
                        "type": "string"
                      },
                      "Vendor1099": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "This vendor is an independent contractor; someone who is given a 1099-MISC form at the end of the year. A 1099 vendor is paid with regular checks, and taxes are not withheld on their behalf."
                      },
                      "VendorPaymentBankDetail": {
                        "$ref": "#/components/schemas/qbo_vendorpaymentbankdetail",
                        "description": "Vendor Payment Bank Detail."
                      },
                      "WebAddr": {
                        "$ref": "#/components/schemas/qbo_websiteaddress",
                        "description": "Website address."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [],
                    "type": "object"
                  },
                  {
                    "additionalProperties": false,
                    "properties": {
                      "AcctNum": {
                        "description": "Name or number of the account associated with this vendor.",
                        "type": "string"
                      },
                      "Active": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "If true, this object is currently enabled for use by QuickBooks."
                      },
                      "AlternatePhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Alternate phone number."
                      },
                      "Balance": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create, read-only otherwise.",
                        "readOnly": true
                      },
                      "BillAddr": {
                        "$ref": "#/components/schemas/qbo_physicaladdress",
                        "description": "Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings."
                      },
                      "BillRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "BillRate can be set to specify this vendor's hourly billing rate."
                      },
                      "CompanyName": {
                        "description": "The name of the company associated with the person or organization.",
                        "type": "string"
                      },
                      "CostRate": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                            "type": "string"
                          }
                        ],
                        "description": "Pay rate of the vendor"
                      },
                      "CurrencyRef": {
                        "$ref": "#/components/schemas/qbo_currencyref",
                        "description": "Reference to the currency in which all amounts associated with this vendor are expressed. Once set, it cannot be changed. If specified currency is not currently in the company's currency list, it is added. If not specified, currency for this vendor is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency . Read-only after object is created.",
                        "readOnly": true
                      },
                      "DisplayName": {
                        "description": "The name of the vendor as displayed. Must be unique across all Vendor, Customer, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating vendor name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix .",
                        "type": "string"
                      },
                      "FamilyName": {
                        "description": "Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "Fax": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Fax number."
                      },
                      "GivenName": {
                        "description": "Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "HasTPAR": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "Indicate if the vendor has TPAR enabled. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR."
                      },
                      "Id": {
                        "type": "string"
                      },
                      "MetaData": {
                        "$ref": "#/components/schemas/qbo_modificationmetadata",
                        "description": "Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications."
                      },
                      "MiddleName": {
                        "description": "Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "Mobile": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Mobile phone number."
                      },
                      "OtherContactInfo": {
                        "$ref": "#/components/schemas/qbo_contactinfo",
                        "description": "List of ContactInfo entities of any contact info type."
                      },
                      "PrimaryEmailAddr": {
                        "$ref": "#/components/schemas/qbo_emailaddress",
                        "description": "Primary email address."
                      },
                      "PrimaryPhone": {
                        "$ref": "#/components/schemas/qbo_telephonenumber30",
                        "description": "Primary phone number."
                      },
                      "PrintOnCheckName": {
                        "description": "Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update.",
                        "type": "string"
                      },
                      "Source": {
                        "description": "The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce",
                        "type": "string"
                      },
                      "Suffix": {
                        "description": "Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create.",
                        "type": "string"
                      },
                      "SyncToken": {
                        "type": "string"
                      },
                      "T4AEligible": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if vendor is T4A eligible. Valid for CA locale"
                      },
                      "T5018Eligible": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "True if vendor is T5018 eligible. Valid for CA locale"
                      },
                      "TaxIdentifier": {
                        "description": "The tax ID of the Person or Organization. The value is masked in responses, exposing only last four characters. For example, the ID of 123-45-6789 is returned as XXXXXXX6789 .",
                        "type": "string"
                      },
                      "TermRef": {
                        "$ref": "#/components/schemas/qbo_referencetype",
                        "description": "Reference to a default Term associated with this Vendor object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for TermRef.value and TermRef.name , respectively."
                      },
                      "Title": {
                        "description": "Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes are required during create.",
                        "type": "string"
                      },
                      "Vendor1099": {
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "enum": [
                              "true",
                              "false"
                            ],
                            "type": "string"
                          }
                        ],
                        "description": "This vendor is an independent contractor; someone who is given a 1099-MISC form at the end of the year. A 1099 vendor is paid with regular checks, and taxes are not withheld on their behalf."
                      },
                      "VendorPaymentBankDetail": {
                        "$ref": "#/components/schemas/qbo_vendorpaymentbankdetail",
                        "description": "Vendor Payment Bank Detail."
                      },
                      "WebAddr": {
                        "$ref": "#/components/schemas/qbo_websiteaddress",
                        "description": "Website address."
                      },
                      "domain": {
                        "type": "string"
                      },
                      "sparse": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "Id",
                      "SyncToken"
                    ],
                    "type": "object"
                  }
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Vendor": {
                      "$ref": "#/components/schemas/output_qbo_vendorresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Create a vendor / Full update a vendor"
      }
    },
    "/v3/company/{realmId}/vendor/{vendorId}": {
      "get": {
        "operationId": "vendors/get",
        "parameters": [
          {
            "in": "path",
            "name": "realmId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "vendorId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "minorversion",
            "required": false,
            "schema": {
              "const": 75,
              "type": "integer"
            }
          },
          {
            "in": "query",
            "name": "requestid",
            "required": false,
            "schema": {
              "minLength": 1,
              "type": "string"
            }
          }
        ],
        "responses": {
          "2XX": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "Vendor": {
                      "$ref": "#/components/schemas/output_qbo_vendorresponse"
                    },
                    "time": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Provider-native response; batches may include individual faults."
          },
          "default": {
            "description": "Provider-native failure; inspect HTTP status, response body, and provider request ID."
          }
        },
        "servers": [
          {
            "description": "production",
            "url": "https://quickbooks.api.intuit.com"
          },
          {
            "description": "sandbox",
            "url": "https://sandbox-quickbooks.api.intuit.com"
          }
        ],
        "summary": "Read a vendor"
      }
    }
  }
}
