diff --git a/docs/v1/accounting/index.html b/docs/v1/accounting/index.html
index fd4947c9..6ad69c99 100644
--- a/docs/v1/accounting/index.html
+++ b/docs/v1/accounting/index.html
@@ -1984,6 +1984,11 @@
"description" : "Xero identifier",
"format" : "uuid"
},
+ "MergedToContactID" : {
+ "type" : "string",
+ "description" : "ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber.",
+ "format" : "uuid"
+ },
"ContactNumber" : {
"maxLength" : 50,
"type" : "string",
@@ -2014,6 +2019,11 @@
"type" : "string",
"description" : "Last name of contact person (max length = 255)"
},
+ "CompanyNumber" : {
+ "maxLength" : 50,
+ "type" : "string",
+ "description" : "Company registration number (max length = 50)"
+ },
"EmailAddress" : {
"maxLength" : 255,
"type" : "string",
@@ -2069,6 +2079,16 @@
"type" : "boolean",
"description" : "true or false – Boolean that describes if a contact has any AR invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts receivable invoice is generated against this contact."
},
+ "SalesDefaultLineAmountType" : {
+ "type" : "string",
+ "description" : "The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber.",
+ "enum" : [ "INCLUSIVE", "EXCLUSIVE", "NONE" ]
+ },
+ "PurchasesDefaultLineAmountType" : {
+ "type" : "string",
+ "description" : "The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber.",
+ "enum" : [ "INCLUSIVE", "EXCLUSIVE", "NONE" ]
+ },
"DefaultCurrency" : {
"$ref" : "#/components/schemas/CurrencyCode"
},
@@ -5956,7 +5976,7 @@
-
+
createAccount
diff --git a/setup.py b/setup.py
index 05834fb4..33d7be49 100644
--- a/setup.py
+++ b/setup.py
@@ -48,5 +48,5 @@ def read_file(filename):
keywords="xero python sdk API oAuth",
name="xero_python",
packages=find_packages(include=["xero_python", "xero_python.*"]),
- version="1.10.0",
+ version="1.11.0",
)
diff --git a/xero_python/__init__.py b/xero_python/__init__.py
index 0f4d5e56..f66e9bb0 100644
--- a/xero_python/__init__.py
+++ b/xero_python/__init__.py
@@ -2,4 +2,4 @@
__author__ = """Xero Developer API"""
__email__ = "api@xero.com"
-__version__ = "1.10.0"
+__version__ = "1.11.0"
diff --git a/xero_python/accounting/api/accounting_api.py b/xero_python/accounting/api/accounting_api.py
index e0d1b561..c1f55873 100644
--- a/xero_python/accounting/api/accounting_api.py
+++ b/xero_python/accounting/api/accounting_api.py
@@ -10,7 +10,7 @@
"""
"""
- OpenAPI spec version: 2.17.1
+ OpenAPI spec version: 2.17.2
"""
import importlib
diff --git a/xero_python/accounting/docs/Contact.md b/xero_python/accounting/docs/Contact.md
index c7c59239..5f9a2bed 100644
--- a/xero_python/accounting/docs/Contact.md
+++ b/xero_python/accounting/docs/Contact.md
@@ -4,12 +4,14 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**contact_id** | **str** | Xero identifier | [optional]
+**merged_to_contact_id** | **str** | ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber. | [optional]
**contact_number** | **str** | This can be updated via the API only i.e. This field is read only on the Xero contact screen, used to identify contacts in external systems (max length = 50). If the Contact Number is used, this is displayed as Contact Code in the Contacts UI in Xero. | [optional]
**account_number** | **str** | A user defined account number. This can be updated via the API and the Xero UI (max length = 50) | [optional]
**contact_status** | **str** | Current status of a contact – see contact status types | [optional]
**name** | **str** | Full name of contact/organisation (max length = 255) | [optional]
**first_name** | **str** | First name of contact person (max length = 255) | [optional]
**last_name** | **str** | Last name of contact person (max length = 255) | [optional]
+**company_number** | **str** | Company registration number (max length = 50) | [optional]
**email_address** | **str** | Email address of contact person (umlauts not supported) (max length = 255) | [optional]
**skype_user_name** | **str** | Skype user name of contact | [optional]
**contact_persons** | [**list[ContactPerson]**](ContactPerson.md) | See contact persons | [optional]
@@ -21,6 +23,8 @@ Name | Type | Description | Notes
**phones** | [**list[Phone]**](Phone.md) | Store certain phone types for a contact – see phone types | [optional]
**is_supplier** | **bool** | true or false – Boolean that describes if a contact that has any AP invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts payable invoice is generated against this contact. | [optional]
**is_customer** | **bool** | true or false – Boolean that describes if a contact has any AR invoices entered against them. Cannot be set via PUT or POST – it is automatically set when an accounts receivable invoice is generated against this contact. | [optional]
+**sales_default_line_amount_type** | **str** | The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. | [optional]
+**purchases_default_line_amount_type** | **str** | The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. | [optional]
**default_currency** | [**CurrencyCode**](CurrencyCode.md) | | [optional]
**xero_network_key** | **str** | Store XeroNetworkKey for contacts. | [optional]
**sales_default_account_code** | **str** | The default sales account code for contacts | [optional]
diff --git a/xero_python/accounting/models/contact.py b/xero_python/accounting/models/contact.py
index 283a0a4e..a41d1e29 100644
--- a/xero_python/accounting/models/contact.py
+++ b/xero_python/accounting/models/contact.py
@@ -31,12 +31,14 @@ class Contact(BaseModel):
"""
openapi_types = {
"contact_id": "str",
+ "merged_to_contact_id": "str",
"contact_number": "str",
"account_number": "str",
"contact_status": "str",
"name": "str",
"first_name": "str",
"last_name": "str",
+ "company_number": "str",
"email_address": "str",
"skype_user_name": "str",
"contact_persons": "list[ContactPerson]",
@@ -48,6 +50,8 @@ class Contact(BaseModel):
"phones": "list[Phone]",
"is_supplier": "bool",
"is_customer": "bool",
+ "sales_default_line_amount_type": "str",
+ "purchases_default_line_amount_type": "str",
"default_currency": "CurrencyCode",
"xero_network_key": "str",
"sales_default_account_code": "str",
@@ -73,12 +77,14 @@ class Contact(BaseModel):
attribute_map = {
"contact_id": "ContactID",
+ "merged_to_contact_id": "MergedToContactID",
"contact_number": "ContactNumber",
"account_number": "AccountNumber",
"contact_status": "ContactStatus",
"name": "Name",
"first_name": "FirstName",
"last_name": "LastName",
+ "company_number": "CompanyNumber",
"email_address": "EmailAddress",
"skype_user_name": "SkypeUserName",
"contact_persons": "ContactPersons",
@@ -90,6 +96,8 @@ class Contact(BaseModel):
"phones": "Phones",
"is_supplier": "IsSupplier",
"is_customer": "IsCustomer",
+ "sales_default_line_amount_type": "SalesDefaultLineAmountType",
+ "purchases_default_line_amount_type": "PurchasesDefaultLineAmountType",
"default_currency": "DefaultCurrency",
"xero_network_key": "XeroNetworkKey",
"sales_default_account_code": "SalesDefaultAccountCode",
@@ -116,12 +124,14 @@ class Contact(BaseModel):
def __init__(
self,
contact_id=None,
+ merged_to_contact_id=None,
contact_number=None,
account_number=None,
contact_status=None,
name=None,
first_name=None,
last_name=None,
+ company_number=None,
email_address=None,
skype_user_name=None,
contact_persons=None,
@@ -133,6 +143,8 @@ def __init__(
phones=None,
is_supplier=None,
is_customer=None,
+ sales_default_line_amount_type=None,
+ purchases_default_line_amount_type=None,
default_currency=None,
xero_network_key=None,
sales_default_account_code=None,
@@ -158,12 +170,14 @@ def __init__(
"""Contact - a model defined in OpenAPI""" # noqa: E501
self._contact_id = None
+ self._merged_to_contact_id = None
self._contact_number = None
self._account_number = None
self._contact_status = None
self._name = None
self._first_name = None
self._last_name = None
+ self._company_number = None
self._email_address = None
self._skype_user_name = None
self._contact_persons = None
@@ -175,6 +189,8 @@ def __init__(
self._phones = None
self._is_supplier = None
self._is_customer = None
+ self._sales_default_line_amount_type = None
+ self._purchases_default_line_amount_type = None
self._default_currency = None
self._xero_network_key = None
self._sales_default_account_code = None
@@ -200,6 +216,8 @@ def __init__(
if contact_id is not None:
self.contact_id = contact_id
+ if merged_to_contact_id is not None:
+ self.merged_to_contact_id = merged_to_contact_id
if contact_number is not None:
self.contact_number = contact_number
if account_number is not None:
@@ -212,6 +230,8 @@ def __init__(
self.first_name = first_name
if last_name is not None:
self.last_name = last_name
+ if company_number is not None:
+ self.company_number = company_number
if email_address is not None:
self.email_address = email_address
if skype_user_name is not None:
@@ -234,6 +254,10 @@ def __init__(
self.is_supplier = is_supplier
if is_customer is not None:
self.is_customer = is_customer
+ if sales_default_line_amount_type is not None:
+ self.sales_default_line_amount_type = sales_default_line_amount_type
+ if purchases_default_line_amount_type is not None:
+ self.purchases_default_line_amount_type = purchases_default_line_amount_type
if default_currency is not None:
self.default_currency = default_currency
if xero_network_key is not None:
@@ -300,6 +324,29 @@ def contact_id(self, contact_id):
self._contact_id = contact_id
+ @property
+ def merged_to_contact_id(self):
+ """Gets the merged_to_contact_id of this Contact. # noqa: E501
+
+ ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber. # noqa: E501
+
+ :return: The merged_to_contact_id of this Contact. # noqa: E501
+ :rtype: str
+ """
+ return self._merged_to_contact_id
+
+ @merged_to_contact_id.setter
+ def merged_to_contact_id(self, merged_to_contact_id):
+ """Sets the merged_to_contact_id of this Contact.
+
+ ID for the destination of a merged contact. Only returned when using paging or when fetching a contact by ContactId or ContactNumber. # noqa: E501
+
+ :param merged_to_contact_id: The merged_to_contact_id of this Contact. # noqa: E501
+ :type: str
+ """
+
+ self._merged_to_contact_id = merged_to_contact_id
+
@property
def contact_number(self):
"""Gets the contact_number of this Contact. # noqa: E501
@@ -472,6 +519,34 @@ def last_name(self, last_name):
self._last_name = last_name
+ @property
+ def company_number(self):
+ """Gets the company_number of this Contact. # noqa: E501
+
+ Company registration number (max length = 50) # noqa: E501
+
+ :return: The company_number of this Contact. # noqa: E501
+ :rtype: str
+ """
+ return self._company_number
+
+ @company_number.setter
+ def company_number(self, company_number):
+ """Sets the company_number of this Contact.
+
+ Company registration number (max length = 50) # noqa: E501
+
+ :param company_number: The company_number of this Contact. # noqa: E501
+ :type: str
+ """
+ if company_number is not None and len(company_number) > 50:
+ raise ValueError(
+ "Invalid value for `company_number`, "
+ "length must be less than or equal to `50`"
+ ) # noqa: E501
+
+ self._company_number = company_number
+
@property
def email_address(self):
"""Gets the email_address of this Contact. # noqa: E501
@@ -735,6 +810,70 @@ def is_customer(self, is_customer):
self._is_customer = is_customer
+ @property
+ def sales_default_line_amount_type(self):
+ """Gets the sales_default_line_amount_type of this Contact. # noqa: E501
+
+ The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. # noqa: E501
+
+ :return: The sales_default_line_amount_type of this Contact. # noqa: E501
+ :rtype: str
+ """
+ return self._sales_default_line_amount_type
+
+ @sales_default_line_amount_type.setter
+ def sales_default_line_amount_type(self, sales_default_line_amount_type):
+ """Sets the sales_default_line_amount_type of this Contact.
+
+ The default sales line amount type for a contact. Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. # noqa: E501
+
+ :param sales_default_line_amount_type: The sales_default_line_amount_type of this Contact. # noqa: E501
+ :type: str
+ """
+ allowed_values = ["INCLUSIVE", "EXCLUSIVE", "NONE", "None"] # noqa: E501
+
+ if sales_default_line_amount_type:
+ if sales_default_line_amount_type not in allowed_values:
+ raise ValueError(
+ "Invalid value for `sales_default_line_amount_type` ({0}), must be one of {1}".format( # noqa: E501
+ sales_default_line_amount_type, allowed_values
+ )
+ )
+
+ self._sales_default_line_amount_type = sales_default_line_amount_type
+
+ @property
+ def purchases_default_line_amount_type(self):
+ """Gets the purchases_default_line_amount_type of this Contact. # noqa: E501
+
+ The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. # noqa: E501
+
+ :return: The purchases_default_line_amount_type of this Contact. # noqa: E501
+ :rtype: str
+ """
+ return self._purchases_default_line_amount_type
+
+ @purchases_default_line_amount_type.setter
+ def purchases_default_line_amount_type(self, purchases_default_line_amount_type):
+ """Sets the purchases_default_line_amount_type of this Contact.
+
+ The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used, or when fetch by ContactId or ContactNumber. # noqa: E501
+
+ :param purchases_default_line_amount_type: The purchases_default_line_amount_type of this Contact. # noqa: E501
+ :type: str
+ """
+ allowed_values = ["INCLUSIVE", "EXCLUSIVE", "NONE", "None"] # noqa: E501
+
+ if purchases_default_line_amount_type:
+ if purchases_default_line_amount_type not in allowed_values:
+ raise ValueError(
+ "Invalid value for `purchases_default_line_amount_type` ({0}), must be one of {1}".format( # noqa: E501
+ purchases_default_line_amount_type, allowed_values
+ )
+ )
+
+ self._purchases_default_line_amount_type = purchases_default_line_amount_type
+
@property
def default_currency(self):
"""Gets the default_currency of this Contact. # noqa: E501
diff --git a/xero_python/appstore/api/app_store_api.py b/xero_python/appstore/api/app_store_api.py
index fc78d400..49772c97 100644
--- a/xero_python/appstore/api/app_store_api.py
+++ b/xero_python/appstore/api/app_store_api.py
@@ -10,7 +10,7 @@
"""
"""
- OpenAPI spec version: 2.17.1
+ OpenAPI spec version: 2.17.2
"""
import importlib
diff --git a/xero_python/assets/api/asset_api.py b/xero_python/assets/api/asset_api.py
index f1c27a71..344be5d2 100644
--- a/xero_python/assets/api/asset_api.py
+++ b/xero_python/assets/api/asset_api.py
@@ -10,7 +10,7 @@
"""
"""
- OpenAPI spec version: 2.17.1
+ OpenAPI spec version: 2.17.2
"""
import importlib
diff --git a/xero_python/docs/README.md b/xero_python/docs/README.md
index 194a3445..9320136d 100644
--- a/xero_python/docs/README.md
+++ b/xero_python/docs/README.md
@@ -3,8 +3,8 @@ These endpoints are related to managing authentication tokens and identity for X
The `xero_python` package is automatically generated by the [XeroAPI SDK 2.0 Codegen](https://github.com/xero-github/xeroapi-sdk-codegen) project:
-- API version: 2.17.1
-- Package version: 1.10.0
+- API version: 2.17.2
+- Package version: 1.11.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://developer.xero.com](https://developer.xero.com)
diff --git a/xero_python/file/api/files_api.py b/xero_python/file/api/files_api.py
index 053849f5..84a8cd87 100644
--- a/xero_python/file/api/files_api.py
+++ b/xero_python/file/api/files_api.py
@@ -10,7 +10,7 @@
"""
"""
- OpenAPI spec version: 2.17.1
+ OpenAPI spec version: 2.17.2
"""
import importlib
diff --git a/xero_python/finance/__init__.py b/xero_python/finance/__init__.py
new file mode 100644
index 00000000..1e68c54b
--- /dev/null
+++ b/xero_python/finance/__init__.py
@@ -0,0 +1,74 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+# import apis into sdk package
+from xero_python.finance.api.finance_api import FinanceApi
+
+
+# import models into sdk package
+from xero_python.finance.models.account_usage import AccountUsage
+from xero_python.finance.models.account_usage_response import AccountUsageResponse
+from xero_python.finance.models.balance_sheet_account_detail import (
+ BalanceSheetAccountDetail,
+)
+from xero_python.finance.models.balance_sheet_account_group import (
+ BalanceSheetAccountGroup,
+)
+from xero_python.finance.models.balance_sheet_account_type import (
+ BalanceSheetAccountType,
+)
+from xero_python.finance.models.balance_sheet_response import BalanceSheetResponse
+from xero_python.finance.models.bank_statement_response import BankStatementResponse
+from xero_python.finance.models.cash_account_response import CashAccountResponse
+from xero_python.finance.models.cash_balance import CashBalance
+from xero_python.finance.models.cash_validation_response import CashValidationResponse
+from xero_python.finance.models.cashflow_account import CashflowAccount
+from xero_python.finance.models.cashflow_activity import CashflowActivity
+from xero_python.finance.models.cashflow_response import CashflowResponse
+from xero_python.finance.models.cashflow_type import CashflowType
+from xero_python.finance.models.contact_detail import ContactDetail
+from xero_python.finance.models.contact_total_detail import ContactTotalDetail
+from xero_python.finance.models.contact_total_other import ContactTotalOther
+from xero_python.finance.models.current_statement_response import (
+ CurrentStatementResponse,
+)
+from xero_python.finance.models.data_source_response import DataSourceResponse
+from xero_python.finance.models.history_record_response import HistoryRecordResponse
+from xero_python.finance.models.income_by_contact_response import (
+ IncomeByContactResponse,
+)
+from xero_python.finance.models.lock_history_model import LockHistoryModel
+from xero_python.finance.models.lock_history_response import LockHistoryResponse
+from xero_python.finance.models.manual_journal_total import ManualJournalTotal
+from xero_python.finance.models.pnl_account import PnlAccount
+from xero_python.finance.models.pnl_account_class import PnlAccountClass
+from xero_python.finance.models.pnl_account_type import PnlAccountType
+from xero_python.finance.models.practice_response import PracticeResponse
+from xero_python.finance.models.problem import Problem
+from xero_python.finance.models.problem_type import ProblemType
+from xero_python.finance.models.profit_and_loss_response import ProfitAndLossResponse
+from xero_python.finance.models.report_history_model import ReportHistoryModel
+from xero_python.finance.models.report_history_response import ReportHistoryResponse
+from xero_python.finance.models.statement_balance_response import (
+ StatementBalanceResponse,
+)
+from xero_python.finance.models.statement_lines_response import StatementLinesResponse
+from xero_python.finance.models.total_detail import TotalDetail
+from xero_python.finance.models.total_other import TotalOther
+from xero_python.finance.models.trial_balance_account import TrialBalanceAccount
+from xero_python.finance.models.trial_balance_entry import TrialBalanceEntry
+from xero_python.finance.models.trial_balance_movement import TrialBalanceMovement
+from xero_python.finance.models.trial_balance_response import TrialBalanceResponse
+from xero_python.finance.models.user_activities_response import UserActivitiesResponse
+from xero_python.finance.models.user_response import UserResponse
diff --git a/xero_python/finance/api/__init__.py b/xero_python/finance/api/__init__.py
new file mode 100644
index 00000000..3baa08c0
--- /dev/null
+++ b/xero_python/finance/api/__init__.py
@@ -0,0 +1,4 @@
+# flake8: noqa
+
+# import apis into api package
+from xero_python.finance.api.finance_api import FinanceApi
diff --git a/xero_python/finance/api/finance_api.py b/xero_python/finance/api/finance_api.py
new file mode 100644
index 00000000..1a00421a
--- /dev/null
+++ b/xero_python/finance/api/finance_api.py
@@ -0,0 +1,928 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+"""
+ OpenAPI spec version: 2.17.2
+"""
+
+import importlib
+import re # noqa: F401
+
+from xero_python import exceptions
+from xero_python.api_client import ApiClient, ModelFinder
+
+try:
+ from .exception_handler import translate_status_exception
+except ImportError:
+ translate_status_exception = exceptions.translate_status_exception
+
+
+class empty:
+ """empty object to mark optional parameter not set"""
+
+
+class FinanceApi(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ base_url = "https://api.xero.com/finance.xro/1.0"
+ models_module = importlib.import_module("xero_python.finance.models")
+
+ def __init__(self, api_client=None, base_url=None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+ self.base_url = base_url or self.base_url
+
+ def get_resource_url(self, resource_path):
+ """
+ Combine API base url with resource specific path
+ :param str resource_path: API endpoint specific path
+ :return: str full resource path
+ """
+ return self.base_url + resource_path
+
+ def get_model_finder(self):
+ return ModelFinder(self.models_module)
+
+ def get_accounting_activity_account_usage(
+ self,
+ xero_tenant_id,
+ start_month=empty,
+ end_month=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get account usage # noqa: E501
+ OAuth2 scope: finance.accountingactivity.read
+ A summary of how each account is being transacted on exposing the level of detail and amounts attributable to manual adjustments. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param str start_month: date, yyyy-MM If no parameter is provided, the month 12 months prior to the end month will be used. Account usage for up to 12 months from this date will be returned.
+ :param str end_month: date, yyyy-MM If no parameter is provided, the current month will be used. Account usage for up to 12 months prior to this date will be returned.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: AccountUsageResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_accounting_activity_account_usage`"
+ )
+
+ collection_formats = {}
+ path_params = {}
+
+ query_params = []
+
+ if start_month is not empty:
+ query_params.append(("startMonth", start_month))
+
+ if end_month is not empty:
+ query_params.append(("endMonth", end_month))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/AccountingActivities/AccountUsage")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="AccountUsageResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_accounting_activity_account_usage"
+ )
+
+ def get_accounting_activity_lock_history(
+ self,
+ xero_tenant_id,
+ end_date=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get lock history # noqa: E501
+ OAuth2 scope: finance.accountingactivity.read
+ Provides a history of locking of accounting books. Locking may be an indicator of good accounting practices that could reduce the risk of changes to accounting records in prior periods. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param str end_date: date, yyyy-MM-dd If no parameter is provided, the current date will be used. Any changes to hard or soft lock dates that were made within the period up to 12 months before this date will be returned. Please be aware that there may be a delay of up to 3 days before a change is visible from this API.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: LockHistoryResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_accounting_activity_lock_history`"
+ )
+
+ collection_formats = {}
+ path_params = {}
+
+ query_params = []
+
+ if end_date is not empty:
+ query_params.append(("endDate", end_date))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/AccountingActivities/LockHistory")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="LockHistoryResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_accounting_activity_lock_history"
+ )
+
+ def get_accounting_activity_report_history(
+ self,
+ xero_tenant_id,
+ end_date=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get report history # noqa: E501
+ OAuth2 scope: finance.accountingactivity.read
+ For a specified organisation, provides a summary of all the reports published within a given period, which may be an indicator for good business management and oversight. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param str end_date: date, yyyy-MM-dd If no parameter is provided, the current date will be used. Any reports that were published within the period up to 12 months before this date will be returned. Please be aware that there may be a delay of up to 3 days before a published report is visible from this API.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: ReportHistoryResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_accounting_activity_report_history`"
+ )
+
+ collection_formats = {}
+ path_params = {}
+
+ query_params = []
+
+ if end_date is not empty:
+ query_params.append(("endDate", end_date))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/AccountingActivities/ReportHistory")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="ReportHistoryResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_accounting_activity_report_history"
+ )
+
+ def get_accounting_activity_user_activities(
+ self,
+ xero_tenant_id,
+ data_month=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get user activities # noqa: E501
+ OAuth2 scope: finance.accountingactivity.read
+ For a specified organisation, provides a list of all the users registered, and a history of their accounting transactions. Also identifies the existence of an external accounting advisor and the level of interaction. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param str data_month: date, yyyy-MM The specified month must be complete (in the past); The current month cannot be specified since it is not complete. If no parameter is provided, the month immediately previous to the current month will be used. Any user activities occurring within the specified month will be returned. Please be aware that there may be a delay of up to 3 days before a user activity is visible from this API.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: UserActivitiesResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_accounting_activity_user_activities`"
+ )
+
+ collection_formats = {}
+ path_params = {}
+
+ query_params = []
+
+ if data_month is not empty:
+ query_params.append(("dataMonth", data_month))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/AccountingActivities/UserActivities")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="UserActivitiesResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_accounting_activity_user_activities"
+ )
+
+ def get_cash_validation(
+ self,
+ xero_tenant_id,
+ balance_date=empty,
+ as_at_system_date=empty,
+ begin_date=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get cash validation # noqa: E501
+ OAuth2 scope: finance.cashvalidation.read
+ Summarizes the total cash position for each account for an org # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param str balance_date: date, yyyy-MM-dd If no parameter is provided, the current date will be used. The ‘balance date’ will return transactions based on the accounting date entered by the user. Transactions before the balanceDate will be included. The user has discretion as to which accounting period the transaction relates to. The ‘balance date’ will control the latest maximum date of transactions included in the aggregate numbers. Balance date does not affect the CurrentStatement object, as this will always return the most recent statement before asAtSystemDate (if specified)
+ :param str as_at_system_date: date, yyyy-MM-dd If no parameter is provided, the current date will be used. The ‘as at’ date will return transactions based on the creation date. It reflects the date the transactions were entered into Xero, not the accounting date. The ‘as at’ date can not be overridden by the user. This can be used to estimate a ‘historical frequency of reconciliation’. The ‘as at’ date will affect the current statement in the response, as any candidate statements created after this date will be filtered out. Thus the current statement returned will be the most recent statement prior to the specified ‘as at’ date. Be aware that neither the begin date, nor the balance date, will affect the current statement. Note; information is only presented when system architecture allows, meaning historical cash validation information will be an estimate. In addition, delete events are not aware of the ‘as at’ functionality in this endpoint, meaning that transactions deleted at the time the API is accessed will be considered to always have been deleted.
+ :param str begin_date: date, yyyy-MM-dd If no parameter is provided, the aggregate results will be drawn from the user’s total history. The ‘begin date’ will return transactions based on the accounting date entered by the user. Transactions after the beginDate will be included. The user has discretion as to which accounting period the transaction relates to.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: list[CashValidationResponse]
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_cash_validation`"
+ )
+
+ collection_formats = {}
+ path_params = {}
+
+ query_params = []
+
+ if balance_date is not empty:
+ query_params.append(("balanceDate", balance_date))
+
+ if as_at_system_date is not empty:
+ query_params.append(("asAtSystemDate", as_at_system_date))
+
+ if begin_date is not empty:
+ query_params.append(("beginDate", begin_date))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/CashValidation")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="list[CashValidationResponse]",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(error, self, "get_cash_validation")
+
+ def get_financial_statement_balance_sheet(
+ self,
+ xero_tenant_id,
+ balance_date=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get Balance Sheet report # noqa: E501
+ OAuth2 scope: finance.statements.read
+ The balance sheet report is a standard financial report which describes the financial position of an organisation at a point in time. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param str balance_date: Specifies the date for balance sheet report. Format yyyy-MM-dd. If no parameter is provided, the current date will be used.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: BalanceSheetResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_financial_statement_balance_sheet`"
+ )
+
+ collection_formats = {}
+ path_params = {}
+
+ query_params = []
+
+ if balance_date is not empty:
+ query_params.append(("balanceDate", balance_date))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/FinancialStatements/BalanceSheet")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="BalanceSheetResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_financial_statement_balance_sheet"
+ )
+
+ def get_financial_statement_cashflow(
+ self,
+ xero_tenant_id,
+ start_date=empty,
+ end_date=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get Cash flow report # noqa: E501
+ OAuth2 scope: finance.statements.read
+ The statement of cash flows - direct method, provides the year to date changes in operating, financing and investing cash flow activities for an organisation. Cashflow statement is not available in US region at this stage. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param str start_date: Date e.g. yyyy-MM-dd Specifies the start date for cash flow report. If no parameter is provided, the date of 12 months before the end date will be used.
+ :param str end_date: Date e.g. yyyy-MM-dd Specifies the end date for cash flow report. If no parameter is provided, the current date will be used.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: CashflowResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_financial_statement_cashflow`"
+ )
+
+ collection_formats = {}
+ path_params = {}
+
+ query_params = []
+
+ if start_date is not empty:
+ query_params.append(("startDate", start_date))
+
+ if end_date is not empty:
+ query_params.append(("endDate", end_date))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/FinancialStatements/Cashflow")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="CashflowResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_financial_statement_cashflow"
+ )
+
+ def get_financial_statement_contacts_expense(
+ self,
+ xero_tenant_id,
+ contact_ids=empty,
+ include_manual_journals=empty,
+ start_date=empty,
+ end_date=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get expense by contacts report # noqa: E501
+ OAuth2 scope: finance.statements.read
+ The expense by contact report provides a year to date profit and loss for customers and suppliers for a given organisation, including detailed contact information. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param list[str] contact_ids: Specifies the customer contacts to be included in the report. If no parameter is provided, all customer contacts will be included
+ :param bool include_manual_journals: Specifies whether to include the manual journals in the report. If no parameter is provided, manual journals will not be included.
+ :param str start_date: Date yyyy-MM-dd Specifies the start date for the report. If no parameter is provided, the date of 12 months before the end date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency.
+ :param str end_date: Date yyyy-MM-dd Specifies the end date for the report. If no parameter is provided, the current date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: IncomeByContactResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_financial_statement_contacts_expense`"
+ )
+
+ collection_formats = {
+ "contactIds": "multi",
+ }
+ path_params = {}
+
+ query_params = []
+
+ if contact_ids is not empty:
+ query_params.append(("contactIds", contact_ids))
+
+ if include_manual_journals is not empty:
+ query_params.append(("includeManualJournals", include_manual_journals))
+
+ if start_date is not empty:
+ query_params.append(("startDate", start_date))
+
+ if end_date is not empty:
+ query_params.append(("endDate", end_date))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/FinancialStatements/contacts/expense")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="IncomeByContactResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_financial_statement_contacts_expense"
+ )
+
+ def get_financial_statement_contacts_revenue(
+ self,
+ xero_tenant_id,
+ contact_ids=empty,
+ include_manual_journals=empty,
+ start_date=empty,
+ end_date=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get revenue by contacts report # noqa: E501
+ OAuth2 scope: finance.statements.read
+ The revenue by contact report provides a year to date profit and loss for customers and suppliers for a given organisation, including detailed contact information. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param list[str] contact_ids: Specifies the customer contacts to be included in the report. If no parameter is provided, all customer contacts will be included
+ :param bool include_manual_journals: Specifies whether to include the manual journals in the report. If no parameter is provided, manual journals will not be included.
+ :param str start_date: Date yyyy-MM-dd Specifies the start date for the report. If no parameter is provided, the date of 12 months before the end date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency.
+ :param str end_date: Date yyyy-MM-dd Specifies the end date for the report. If no parameter is provided, the current date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: IncomeByContactResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_financial_statement_contacts_revenue`"
+ )
+
+ collection_formats = {
+ "contactIds": "multi",
+ }
+ path_params = {}
+
+ query_params = []
+
+ if contact_ids is not empty:
+ query_params.append(("contactIds", contact_ids))
+
+ if include_manual_journals is not empty:
+ query_params.append(("includeManualJournals", include_manual_journals))
+
+ if start_date is not empty:
+ query_params.append(("startDate", start_date))
+
+ if end_date is not empty:
+ query_params.append(("endDate", end_date))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/FinancialStatements/contacts/revenue")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="IncomeByContactResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_financial_statement_contacts_revenue"
+ )
+
+ def get_financial_statement_profit_and_loss(
+ self,
+ xero_tenant_id,
+ start_date=empty,
+ end_date=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get Profit & Loss report # noqa: E501
+ OAuth2 scope: finance.statements.read
+ The profit and loss statement is a standard financial report providing detailed year to date income and expense detail for an organisation. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param str start_date: Date e.g. yyyy-MM-dd Specifies the start date for profit and loss report If no parameter is provided, the date of 12 months before the end date will be used.
+ :param str end_date: Date e.g. yyyy-MM-dd Specifies the end date for profit and loss report If no parameter is provided, the current date will be used.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: ProfitAndLossResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_financial_statement_profit_and_loss`"
+ )
+
+ collection_formats = {}
+ path_params = {}
+
+ query_params = []
+
+ if start_date is not empty:
+ query_params.append(("startDate", start_date))
+
+ if end_date is not empty:
+ query_params.append(("endDate", end_date))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/FinancialStatements/ProfitAndLoss")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="ProfitAndLossResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_financial_statement_profit_and_loss"
+ )
+
+ def get_financial_statement_trial_balance(
+ self,
+ xero_tenant_id,
+ end_date=empty,
+ _return_http_data_only=True,
+ _preload_content=True,
+ _request_timeout=None,
+ ):
+ """Get Trial Balance report # noqa: E501
+ OAuth2 scope: finance.statements.read
+ The trial balance provides a detailed list of all accounts of an organisation at a point in time, with revenue and expense items being year to date. # noqa: E501
+ :param str xero_tenant_id: Xero identifier for Tenant (required)
+ :param str end_date: Date e.g. yyyy-MM-dd Specifies the end date for trial balance report If no parameter is provided, the current date will be used.
+ :param bool _return_http_data_only: return received data only
+ :param bool _preload_content: load received data in models
+ :param bool _request_timeout: maximum wait time for response
+ :return: TrialBalanceResponse
+ """
+
+ # verify the required parameter 'xero_tenant_id' is set
+ if xero_tenant_id is None:
+ raise ValueError(
+ "Missing the required parameter `xero_tenant_id` "
+ "when calling `get_financial_statement_trial_balance`"
+ )
+
+ collection_formats = {}
+ path_params = {}
+
+ query_params = []
+
+ if end_date is not empty:
+ query_params.append(("endDate", end_date))
+
+ header_params = {
+ "xero-tenant-id": xero_tenant_id,
+ }
+
+ local_var_files = {}
+ form_params = []
+
+ body_params = None
+ # HTTP header `Accept`
+ header_params["Accept"] = self.api_client.select_header_accept(
+ ["application/json"]
+ )
+
+ # Authentication setting
+ auth_settings = ["OAuth2"]
+ url = self.get_resource_url("/FinancialStatements/TrialBalance")
+
+ try:
+ return self.api_client.call_api(
+ url,
+ "GET",
+ path_params,
+ query_params,
+ header_params,
+ body=body_params,
+ post_params=form_params,
+ files=local_var_files,
+ response_type="TrialBalanceResponse",
+ response_model_finder=self.get_model_finder(),
+ auth_settings=auth_settings,
+ _return_http_data_only=_return_http_data_only,
+ _preload_content=_preload_content,
+ _request_timeout=_request_timeout,
+ collection_formats=collection_formats,
+ )
+ except exceptions.HTTPStatusException as error:
+ raise translate_status_exception(
+ error, self, "get_financial_statement_trial_balance"
+ )
diff --git a/xero_python/finance/docs/AccountUsage.md b/xero_python/finance/docs/AccountUsage.md
new file mode 100644
index 00000000..eeaf7c7d
--- /dev/null
+++ b/xero_python/finance/docs/AccountUsage.md
@@ -0,0 +1,22 @@
+# AccountUsage
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**month** | **str** | The month this usage item contains data for | [optional]
+**account_id** | **str** | The account this usage item contains data for | [optional]
+**currency_code** | **str** | The currency code this usage item contains data for | [optional]
+**total_received** | **float** | Total received | [optional]
+**count_received** | **int** | Count of received | [optional]
+**total_paid** | **float** | Total paid | [optional]
+**count_paid** | **int** | Count of paid | [optional]
+**total_manual_journal** | **float** | Total value of manual journals | [optional]
+**count_manual_journal** | **int** | Count of manual journals | [optional]
+**account_name** | **str** | The name of the account | [optional]
+**reporting_code** | **str** | Shown if set | [optional]
+**reporting_code_name** | **str** | Shown if set | [optional]
+**report_code_updated_date_utc** | **datetime** | Last modified date UTC format | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/AccountUsageResponse.md b/xero_python/finance/docs/AccountUsageResponse.md
new file mode 100644
index 00000000..8166754c
--- /dev/null
+++ b/xero_python/finance/docs/AccountUsageResponse.md
@@ -0,0 +1,13 @@
+# AccountUsageResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**organisation_id** | **str** | The requested Organisation to which the data pertains | [optional]
+**start_month** | **str** | The start month of the report | [optional]
+**end_month** | **str** | The end month of the report | [optional]
+**account_usage** | [**list[AccountUsage]**](AccountUsage.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/BalanceSheetAccountDetail.md b/xero_python/finance/docs/BalanceSheetAccountDetail.md
new file mode 100644
index 00000000..89f849d5
--- /dev/null
+++ b/xero_python/finance/docs/BalanceSheetAccountDetail.md
@@ -0,0 +1,14 @@
+# BalanceSheetAccountDetail
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**code** | **str** | Accounting code | [optional]
+**account_id** | **str** | ID of the account | [optional]
+**name** | **str** | Account name | [optional]
+**reporting_code** | **str** | Reporting code | [optional]
+**total** | **float** | Total movement on this account | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/BalanceSheetAccountGroup.md b/xero_python/finance/docs/BalanceSheetAccountGroup.md
new file mode 100644
index 00000000..4c05667e
--- /dev/null
+++ b/xero_python/finance/docs/BalanceSheetAccountGroup.md
@@ -0,0 +1,11 @@
+# BalanceSheetAccountGroup
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_types** | [**list[BalanceSheetAccountType]**](BalanceSheetAccountType.md) | | [optional]
+**total** | **float** | Total value of all the accounts in this type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/BalanceSheetAccountType.md b/xero_python/finance/docs/BalanceSheetAccountType.md
new file mode 100644
index 00000000..6d69638d
--- /dev/null
+++ b/xero_python/finance/docs/BalanceSheetAccountType.md
@@ -0,0 +1,12 @@
+# BalanceSheetAccountType
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_type** | **str** | The type of the account. See <a href='https://developer.xero.com/documentation/api/types#AccountTypes'>Account Types</a> | [optional]
+**accounts** | [**list[BalanceSheetAccountDetail]**](BalanceSheetAccountDetail.md) | A list of all accounts of this type. Refer to the Account section below for each account element detail. | [optional]
+**total** | **float** | Total value of all the accounts in this type | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/BalanceSheetResponse.md b/xero_python/finance/docs/BalanceSheetResponse.md
new file mode 100644
index 00000000..292db89a
--- /dev/null
+++ b/xero_python/finance/docs/BalanceSheetResponse.md
@@ -0,0 +1,13 @@
+# BalanceSheetResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**balance_date** | **date** | Balance date of the report | [optional]
+**asset** | [**BalanceSheetAccountGroup**](BalanceSheetAccountGroup.md) | | [optional]
+**liability** | [**BalanceSheetAccountGroup**](BalanceSheetAccountGroup.md) | | [optional]
+**equity** | [**BalanceSheetAccountGroup**](BalanceSheetAccountGroup.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/BankStatementResponse.md b/xero_python/finance/docs/BankStatementResponse.md
new file mode 100644
index 00000000..1428506c
--- /dev/null
+++ b/xero_python/finance/docs/BankStatementResponse.md
@@ -0,0 +1,11 @@
+# BankStatementResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**statement_lines** | [**StatementLinesResponse**](StatementLinesResponse.md) | | [optional]
+**current_statement** | [**CurrentStatementResponse**](CurrentStatementResponse.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/CashAccountResponse.md b/xero_python/finance/docs/CashAccountResponse.md
new file mode 100644
index 00000000..61200e90
--- /dev/null
+++ b/xero_python/finance/docs/CashAccountResponse.md
@@ -0,0 +1,14 @@
+# CashAccountResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**unreconciled_amount_pos** | **float** | Total value of transactions in the journals which are not reconciled to bank statement lines, and have a positive (debit) value. | [optional]
+**unreconciled_amount_neg** | **float** | Total value of transactions in the journals which are not reconciled to bank statement lines, and have a negative (credit) value. | [optional]
+**starting_balance** | **float** | Starting (or historic) balance from the journals (manually keyed in by users on account creation - unverified). | [optional]
+**account_balance** | **float** | Current cash at bank accounting value from the journals. | [optional]
+**balance_currency** | **str** | Currency which the cashAccount transactions relate to. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/CashBalance.md b/xero_python/finance/docs/CashBalance.md
new file mode 100644
index 00000000..7534ae77
--- /dev/null
+++ b/xero_python/finance/docs/CashBalance.md
@@ -0,0 +1,12 @@
+# CashBalance
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**opening_cash_balance** | **float** | Opening balance of cash and cash equivalents | [optional]
+**closing_cash_balance** | **float** | Closing balance of cash and cash equivalents | [optional]
+**net_cash_movement** | **float** | Net movement of cash and cash equivalents for the period | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/CashValidationResponse.md b/xero_python/finance/docs/CashValidationResponse.md
new file mode 100644
index 00000000..ef404a9f
--- /dev/null
+++ b/xero_python/finance/docs/CashValidationResponse.md
@@ -0,0 +1,14 @@
+# CashValidationResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_id** | **str** | The Xero identifier for an account | [optional]
+**statement_balance** | [**StatementBalanceResponse**](StatementBalanceResponse.md) | | [optional]
+**statement_balance_date** | **date** | UTC Date when the last bank statement item was entered into Xero. This date is represented in ISO 8601 format. | [optional]
+**bank_statement** | [**BankStatementResponse**](BankStatementResponse.md) | | [optional]
+**cash_account** | [**CashAccountResponse**](CashAccountResponse.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/CashflowAccount.md b/xero_python/finance/docs/CashflowAccount.md
new file mode 100644
index 00000000..82c3e5fe
--- /dev/null
+++ b/xero_python/finance/docs/CashflowAccount.md
@@ -0,0 +1,16 @@
+# CashflowAccount
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_id** | **str** | ID of the account | [optional]
+**account_type** | **str** | The type of the account. See <a href='https://developer.xero.com/documentation/api/types#AccountTypes'>Account Types</a> | [optional]
+**account_class** | **str** | The class of the account. See <a href='https://developer.xero.com/documentation/api/types#AccountClassTypes'>Account Class Types</a> | [optional]
+**code** | **str** | Account code | [optional]
+**name** | **str** | Account name | [optional]
+**reporting_code** | **str** | Reporting code used for cash flow classification | [optional]
+**total** | **float** | Total amount for the account | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/CashflowActivity.md b/xero_python/finance/docs/CashflowActivity.md
new file mode 100644
index 00000000..3887d96a
--- /dev/null
+++ b/xero_python/finance/docs/CashflowActivity.md
@@ -0,0 +1,12 @@
+# CashflowActivity
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | Name of the cashflow activity type. It will be either Operating Activities, Investing Activities or Financing Activities | [optional]
+**total** | **float** | Total value of the activity type | [optional]
+**cashflow_types** | [**list[CashflowType]**](CashflowType.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/CashflowResponse.md b/xero_python/finance/docs/CashflowResponse.md
new file mode 100644
index 00000000..e694a029
--- /dev/null
+++ b/xero_python/finance/docs/CashflowResponse.md
@@ -0,0 +1,13 @@
+# CashflowResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**start_date** | **date** | Start date of the report | [optional]
+**end_date** | **date** | End date of the report | [optional]
+**cash_balance** | [**CashBalance**](CashBalance.md) | | [optional]
+**cashflow_activities** | [**list[CashflowActivity]**](CashflowActivity.md) | Break down of cash and cash equivalents for the period | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/CashflowType.md b/xero_python/finance/docs/CashflowType.md
new file mode 100644
index 00000000..8b5ee967
--- /dev/null
+++ b/xero_python/finance/docs/CashflowType.md
@@ -0,0 +1,12 @@
+# CashflowType
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **str** | Name of the activity | [optional]
+**total** | **float** | Total value of the activity | [optional]
+**accounts** | [**list[CashflowAccount]**](CashflowAccount.md) | List of the accounts in this activity | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/ContactDetail.md b/xero_python/finance/docs/ContactDetail.md
new file mode 100644
index 00000000..960d75b0
--- /dev/null
+++ b/xero_python/finance/docs/ContactDetail.md
@@ -0,0 +1,15 @@
+# ContactDetail
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**contact_id** | **str** | ID of the contact associated with the transactions. Transactions with no contact will be grouped under the special ID: 86793108-198C-46D8-90A3-43C1D12686CE. Transactions that are receive or spend bank transfers will be grouped under the special ID: 207322B3-6A58-4BE7-80F1-430123914AD6 | [optional]
+**name** | **str** | Name of the contact associated with the transactions. If no contact is associated with the transactions this will appear as “None Provided”, For receive or spend bank transfer transactions, this will appear as “Bank Transfer”. | [optional]
+**total** | **float** | Total value for the contact | [optional]
+**total_detail** | [**ContactTotalDetail**](ContactTotalDetail.md) | | [optional]
+**total_other** | [**ContactTotalOther**](ContactTotalOther.md) | | [optional]
+**account_codes** | **list[str]** | A list of account codes involved in transactions. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/ContactTotalDetail.md b/xero_python/finance/docs/ContactTotalDetail.md
new file mode 100644
index 00000000..b56d2453
--- /dev/null
+++ b/xero_python/finance/docs/ContactTotalDetail.md
@@ -0,0 +1,12 @@
+# ContactTotalDetail
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total_paid** | **float** | Total paid invoice and cash value for the contact within the period. | [optional]
+**total_outstanding** | **float** | Total outstanding invoice value for the contact within the period. | [optional]
+**total_credited_un_applied** | **float** | Total unapplied credited value for the contact within the period. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/ContactTotalOther.md b/xero_python/finance/docs/ContactTotalOther.md
new file mode 100644
index 00000000..66a9e5ea
--- /dev/null
+++ b/xero_python/finance/docs/ContactTotalOther.md
@@ -0,0 +1,13 @@
+# ContactTotalOther
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total_outstanding_aged** | **float** | Total outstanding invoice value for the contact within the period where the invoices are more than 90 days old | [optional]
+**total_voided** | **float** | Total voided value for the contact. | [optional]
+**total_credited** | **float** | Total credited value for the contact. | [optional]
+**transaction_count** | **int** | Number of transactions for the contact. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/CurrentStatementResponse.md b/xero_python/finance/docs/CurrentStatementResponse.md
new file mode 100644
index 00000000..854593cf
--- /dev/null
+++ b/xero_python/finance/docs/CurrentStatementResponse.md
@@ -0,0 +1,15 @@
+# CurrentStatementResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**start_date** | **date** | Looking at the most recent bank statement, this field indicates the first date which transactions on this statement pertain to. This date is represented in ISO 8601 format. | [optional]
+**end_date** | **date** | Looking at the most recent bank statement, this field indicates the last date which transactions on this statement pertain to. This date is represented in ISO 8601 format. | [optional]
+**start_balance** | **float** | Looking at the most recent bank statement, this field indicates the balance before the transactions on the statement are applied (note, this is not always populated by the bank in every single instance (~10%)). | [optional]
+**end_balance** | **float** | Looking at the most recent bank statement, this field indicates the balance after the transactions on the statement are applied (note, this is not always populated by the bank in every single instance (~10%)). | [optional]
+**imported_date_time_utc** | **datetime** | Looking at the most recent bank statement, this field indicates when the document was imported into Xero. This date is represented in ISO 8601 format. | [optional]
+**import_source_type** | **str** | Looking at the most recent bank statement, this field indicates the source of the data (direct bank feed, indirect bank feed, file upload, or manual keying). | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/DataSourceResponse.md b/xero_python/finance/docs/DataSourceResponse.md
new file mode 100644
index 00000000..6e8ceffd
--- /dev/null
+++ b/xero_python/finance/docs/DataSourceResponse.md
@@ -0,0 +1,24 @@
+# DataSourceResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**direct_bank_feed** | **float** | Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero. This gives an indication on the certainty of correctness of the data. | [optional]
+**indirect_bank_feed** | **float** | Sum of the amounts of all statement lines where the source of the data was a indirect bank feed to Xero (usually via Yodlee). This gives an indication on the certainty of correctness of the data. | [optional]
+**file_upload** | **float** | Sum of the amounts of all statement lines where the source of the data was a CSV file upload in to Xero. This gives an indication on the certainty of correctness of the data. | [optional]
+**manual** | **float** | Sum of the amounts of all statement lines where the source of the data was manually keyed in to Xero. This gives an indication on the certainty of correctness of the data. | [optional]
+**direct_bank_feed_pos** | **float** | Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. | [optional]
+**indirect_bank_feed_pos** | **float** | Sum of the amounts of all statement lines where the source of the data was a indirect bank feed to Xero (usually via Yodlee). This gives an indication on the certainty of correctness of the data. Only positive transactions are included. | [optional]
+**file_upload_pos** | **float** | Sum of the amounts of all statement lines where the source of the data was a CSV file upload in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. | [optional]
+**manual_pos** | **float** | Sum of the amounts of all statement lines where the source of the data was manually keyed in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. | [optional]
+**direct_bank_feed_neg** | **float** | Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. | [optional]
+**indirect_bank_feed_neg** | **float** | Sum of the amounts of all statement lines where the source of the data was a indirect bank feed to Xero (usually via Yodlee). This gives an indication on the certainty of correctness of the data. Only negative transactions are included. | [optional]
+**file_upload_neg** | **float** | Sum of the amounts of all statement lines where the source of the data was a CSV file upload in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. | [optional]
+**manual_neg** | **float** | Sum of the amounts of all statement lines where the source of the data was manually keyed in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. | [optional]
+**other_pos** | **float** | Sum of the amounts of all statement lines where the source of the data was any other category. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. | [optional]
+**other_neg** | **float** | Sum of the amounts of all statement lines where the source of the data was any other category. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. | [optional]
+**other** | **float** | Sum of the amounts of all statement lines where the source of the data was any other category. This gives an indication on the certainty of correctness of the data. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/FinanceApi.md b/xero_python/finance/docs/FinanceApi.md
new file mode 100644
index 00000000..a03beb23
--- /dev/null
+++ b/xero_python/finance/docs/FinanceApi.md
@@ -0,0 +1,756 @@
+# xero_python.finance.FinanceApi
+
+All URIs are relative to *https://api.xero.com/finance.xro/1.0*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**get_accounting_activity_account_usage**](FinanceApi.md#get_accounting_activity_account_usage) | **GET** /AccountingActivities/AccountUsage | Get account usage
+[**get_accounting_activity_lock_history**](FinanceApi.md#get_accounting_activity_lock_history) | **GET** /AccountingActivities/LockHistory | Get lock history
+[**get_accounting_activity_report_history**](FinanceApi.md#get_accounting_activity_report_history) | **GET** /AccountingActivities/ReportHistory | Get report history
+[**get_accounting_activity_user_activities**](FinanceApi.md#get_accounting_activity_user_activities) | **GET** /AccountingActivities/UserActivities | Get user activities
+[**get_cash_validation**](FinanceApi.md#get_cash_validation) | **GET** /CashValidation | Get cash validation
+[**get_financial_statement_balance_sheet**](FinanceApi.md#get_financial_statement_balance_sheet) | **GET** /FinancialStatements/BalanceSheet | Get Balance Sheet report
+[**get_financial_statement_cashflow**](FinanceApi.md#get_financial_statement_cashflow) | **GET** /FinancialStatements/Cashflow | Get Cash flow report
+[**get_financial_statement_contacts_expense**](FinanceApi.md#get_financial_statement_contacts_expense) | **GET** /FinancialStatements/contacts/expense | Get expense by contacts report
+[**get_financial_statement_contacts_revenue**](FinanceApi.md#get_financial_statement_contacts_revenue) | **GET** /FinancialStatements/contacts/revenue | Get revenue by contacts report
+[**get_financial_statement_profit_and_loss**](FinanceApi.md#get_financial_statement_profit_and_loss) | **GET** /FinancialStatements/ProfitAndLoss | Get Profit & Loss report
+[**get_financial_statement_trial_balance**](FinanceApi.md#get_financial_statement_trial_balance) | **GET** /FinancialStatements/TrialBalance | Get Trial Balance report
+
+
+# **get_accounting_activity_account_usage**
+> AccountUsageResponse get_accounting_activity_account_usage(xero_tenant_id, start_month=start_month, end_month=end_month)
+
+Get account usage
+
+A summary of how each account is being transacted on exposing the level of detail and amounts attributable to manual adjustments.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+start_month = '2020-09' # str | date, yyyy-MM If no parameter is provided, the month 12 months prior to the end month will be used. Account usage for up to 12 months from this date will be returned. (optional)
+end_month = '2021-09' # str | date, yyyy-MM If no parameter is provided, the current month will be used. Account usage for up to 12 months prior to this date will be returned. (optional)
+try:
+ # Get account usage
+ api_response = api_instance.get_accounting_activity_account_usage(xero_tenant_id, start_month=start_month, end_month=end_month)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_accounting_activity_account_usage: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **start_month** | **str**| date, yyyy-MM If no parameter is provided, the month 12 months prior to the end month will be used. Account usage for up to 12 months from this date will be returned. | [optional]
+ **end_month** | **str**| date, yyyy-MM If no parameter is provided, the current month will be used. Account usage for up to 12 months prior to this date will be returned. | [optional]
+
+### Return type
+
+[**AccountUsageResponse**](AccountUsageResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_accounting_activity_lock_history**
+> LockHistoryResponse get_accounting_activity_lock_history(xero_tenant_id, end_date=end_date)
+
+Get lock history
+
+Provides a history of locking of accounting books. Locking may be an indicator of good accounting practices that could reduce the risk of changes to accounting records in prior periods.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+end_date = '2021-09-15' # str | date, yyyy-MM-dd If no parameter is provided, the current date will be used. Any changes to hard or soft lock dates that were made within the period up to 12 months before this date will be returned. Please be aware that there may be a delay of up to 3 days before a change is visible from this API. (optional)
+try:
+ # Get lock history
+ api_response = api_instance.get_accounting_activity_lock_history(xero_tenant_id, end_date=end_date)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_accounting_activity_lock_history: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **end_date** | **str**| date, yyyy-MM-dd If no parameter is provided, the current date will be used. Any changes to hard or soft lock dates that were made within the period up to 12 months before this date will be returned. Please be aware that there may be a delay of up to 3 days before a change is visible from this API. | [optional]
+
+### Return type
+
+[**LockHistoryResponse**](LockHistoryResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_accounting_activity_report_history**
+> ReportHistoryResponse get_accounting_activity_report_history(xero_tenant_id, end_date=end_date)
+
+Get report history
+
+For a specified organisation, provides a summary of all the reports published within a given period, which may be an indicator for good business management and oversight.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+end_date = '2021-09-15' # str | date, yyyy-MM-dd If no parameter is provided, the current date will be used. Any reports that were published within the period up to 12 months before this date will be returned. Please be aware that there may be a delay of up to 3 days before a published report is visible from this API. (optional)
+try:
+ # Get report history
+ api_response = api_instance.get_accounting_activity_report_history(xero_tenant_id, end_date=end_date)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_accounting_activity_report_history: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **end_date** | **str**| date, yyyy-MM-dd If no parameter is provided, the current date will be used. Any reports that were published within the period up to 12 months before this date will be returned. Please be aware that there may be a delay of up to 3 days before a published report is visible from this API. | [optional]
+
+### Return type
+
+[**ReportHistoryResponse**](ReportHistoryResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_accounting_activity_user_activities**
+> UserActivitiesResponse get_accounting_activity_user_activities(xero_tenant_id, data_month=data_month)
+
+Get user activities
+
+For a specified organisation, provides a list of all the users registered, and a history of their accounting transactions. Also identifies the existence of an external accounting advisor and the level of interaction.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+data_month = '2021-09' # str | date, yyyy-MM The specified month must be complete (in the past); The current month cannot be specified since it is not complete. If no parameter is provided, the month immediately previous to the current month will be used. Any user activities occurring within the specified month will be returned. Please be aware that there may be a delay of up to 3 days before a user activity is visible from this API. (optional)
+try:
+ # Get user activities
+ api_response = api_instance.get_accounting_activity_user_activities(xero_tenant_id, data_month=data_month)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_accounting_activity_user_activities: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **data_month** | **str**| date, yyyy-MM The specified month must be complete (in the past); The current month cannot be specified since it is not complete. If no parameter is provided, the month immediately previous to the current month will be used. Any user activities occurring within the specified month will be returned. Please be aware that there may be a delay of up to 3 days before a user activity is visible from this API. | [optional]
+
+### Return type
+
+[**UserActivitiesResponse**](UserActivitiesResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_cash_validation**
+> list[CashValidationResponse] get_cash_validation(xero_tenant_id, balance_date=balance_date, as_at_system_date=as_at_system_date, begin_date=begin_date)
+
+Get cash validation
+
+Summarizes the total cash position for each account for an org
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+balance_date = '2021-09-15' # str | date, yyyy-MM-dd If no parameter is provided, the current date will be used. The ‘balance date’ will return transactions based on the accounting date entered by the user. Transactions before the balanceDate will be included. The user has discretion as to which accounting period the transaction relates to. The ‘balance date’ will control the latest maximum date of transactions included in the aggregate numbers. Balance date does not affect the CurrentStatement object, as this will always return the most recent statement before asAtSystemDate (if specified) (optional)
+as_at_system_date = '2021-09-15' # str | date, yyyy-MM-dd If no parameter is provided, the current date will be used. The ‘as at’ date will return transactions based on the creation date. It reflects the date the transactions were entered into Xero, not the accounting date. The ‘as at’ date can not be overridden by the user. This can be used to estimate a ‘historical frequency of reconciliation’. The ‘as at’ date will affect the current statement in the response, as any candidate statements created after this date will be filtered out. Thus the current statement returned will be the most recent statement prior to the specified ‘as at’ date. Be aware that neither the begin date, nor the balance date, will affect the current statement. Note; information is only presented when system architecture allows, meaning historical cash validation information will be an estimate. In addition, delete events are not aware of the ‘as at’ functionality in this endpoint, meaning that transactions deleted at the time the API is accessed will be considered to always have been deleted. (optional)
+begin_date = '2021-09-15' # str | date, yyyy-MM-dd If no parameter is provided, the aggregate results will be drawn from the user’s total history. The ‘begin date’ will return transactions based on the accounting date entered by the user. Transactions after the beginDate will be included. The user has discretion as to which accounting period the transaction relates to. (optional)
+try:
+ # Get cash validation
+ api_response = api_instance.get_cash_validation(xero_tenant_id, balance_date=balance_date, as_at_system_date=as_at_system_date, begin_date=begin_date)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_cash_validation: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **balance_date** | **str**| date, yyyy-MM-dd If no parameter is provided, the current date will be used. The ‘balance date’ will return transactions based on the accounting date entered by the user. Transactions before the balanceDate will be included. The user has discretion as to which accounting period the transaction relates to. The ‘balance date’ will control the latest maximum date of transactions included in the aggregate numbers. Balance date does not affect the CurrentStatement object, as this will always return the most recent statement before asAtSystemDate (if specified) | [optional]
+ **as_at_system_date** | **str**| date, yyyy-MM-dd If no parameter is provided, the current date will be used. The ‘as at’ date will return transactions based on the creation date. It reflects the date the transactions were entered into Xero, not the accounting date. The ‘as at’ date can not be overridden by the user. This can be used to estimate a ‘historical frequency of reconciliation’. The ‘as at’ date will affect the current statement in the response, as any candidate statements created after this date will be filtered out. Thus the current statement returned will be the most recent statement prior to the specified ‘as at’ date. Be aware that neither the begin date, nor the balance date, will affect the current statement. Note; information is only presented when system architecture allows, meaning historical cash validation information will be an estimate. In addition, delete events are not aware of the ‘as at’ functionality in this endpoint, meaning that transactions deleted at the time the API is accessed will be considered to always have been deleted. | [optional]
+ **begin_date** | **str**| date, yyyy-MM-dd If no parameter is provided, the aggregate results will be drawn from the user’s total history. The ‘begin date’ will return transactions based on the accounting date entered by the user. Transactions after the beginDate will be included. The user has discretion as to which accounting period the transaction relates to. | [optional]
+
+### Return type
+
+[**list[CashValidationResponse]**](CashValidationResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_financial_statement_balance_sheet**
+> BalanceSheetResponse get_financial_statement_balance_sheet(xero_tenant_id, balance_date=balance_date)
+
+Get Balance Sheet report
+
+The balance sheet report is a standard financial report which describes the financial position of an organisation at a point in time.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+balance_date = '2020-06-30' # str | Specifies the date for balance sheet report. Format yyyy-MM-dd. If no parameter is provided, the current date will be used. (optional)
+try:
+ # Get Balance Sheet report
+ api_response = api_instance.get_financial_statement_balance_sheet(xero_tenant_id, balance_date=balance_date)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_financial_statement_balance_sheet: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **balance_date** | **str**| Specifies the date for balance sheet report. Format yyyy-MM-dd. If no parameter is provided, the current date will be used. | [optional]
+
+### Return type
+
+[**BalanceSheetResponse**](BalanceSheetResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_financial_statement_cashflow**
+> CashflowResponse get_financial_statement_cashflow(xero_tenant_id, start_date=start_date, end_date=end_date)
+
+Get Cash flow report
+
+The statement of cash flows - direct method, provides the year to date changes in operating, financing and investing cash flow activities for an organisation. Cashflow statement is not available in US region at this stage.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+start_date = '2020-09-15' # str | Date e.g. yyyy-MM-dd Specifies the start date for cash flow report. If no parameter is provided, the date of 12 months before the end date will be used. (optional)
+end_date = '2021-09-15' # str | Date e.g. yyyy-MM-dd Specifies the end date for cash flow report. If no parameter is provided, the current date will be used. (optional)
+try:
+ # Get Cash flow report
+ api_response = api_instance.get_financial_statement_cashflow(xero_tenant_id, start_date=start_date, end_date=end_date)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_financial_statement_cashflow: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **start_date** | **str**| Date e.g. yyyy-MM-dd Specifies the start date for cash flow report. If no parameter is provided, the date of 12 months before the end date will be used. | [optional]
+ **end_date** | **str**| Date e.g. yyyy-MM-dd Specifies the end date for cash flow report. If no parameter is provided, the current date will be used. | [optional]
+
+### Return type
+
+[**CashflowResponse**](CashflowResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_financial_statement_contacts_expense**
+> IncomeByContactResponse get_financial_statement_contacts_expense(xero_tenant_id, contact_ids=contact_ids, include_manual_journals=include_manual_journals, start_date=start_date, end_date=end_date)
+
+Get expense by contacts report
+
+The expense by contact report provides a year to date profit and loss for customers and suppliers for a given organisation, including detailed contact information.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+contact_ids = ['[\"00000000-0000-0000-0000-000000000000\",\"00000000-0000-0000-0000-000000000000\"]'] # list[str] | Specifies the customer contacts to be included in the report. If no parameter is provided, all customer contacts will be included (optional)
+include_manual_journals = true # bool | Specifies whether to include the manual journals in the report. If no parameter is provided, manual journals will not be included. (optional)
+start_date = '2020-09-15' # str | Date yyyy-MM-dd Specifies the start date for the report. If no parameter is provided, the date of 12 months before the end date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency. (optional)
+end_date = '2020-09-15' # str | Date yyyy-MM-dd Specifies the end date for the report. If no parameter is provided, the current date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency. (optional)
+try:
+ # Get expense by contacts report
+ api_response = api_instance.get_financial_statement_contacts_expense(xero_tenant_id, contact_ids=contact_ids, include_manual_journals=include_manual_journals, start_date=start_date, end_date=end_date)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_financial_statement_contacts_expense: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **contact_ids** | [**list[str]**](str.md)| Specifies the customer contacts to be included in the report. If no parameter is provided, all customer contacts will be included | [optional]
+ **include_manual_journals** | **bool**| Specifies whether to include the manual journals in the report. If no parameter is provided, manual journals will not be included. | [optional]
+ **start_date** | **str**| Date yyyy-MM-dd Specifies the start date for the report. If no parameter is provided, the date of 12 months before the end date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency. | [optional]
+ **end_date** | **str**| Date yyyy-MM-dd Specifies the end date for the report. If no parameter is provided, the current date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency. | [optional]
+
+### Return type
+
+[**IncomeByContactResponse**](IncomeByContactResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_financial_statement_contacts_revenue**
+> IncomeByContactResponse get_financial_statement_contacts_revenue(xero_tenant_id, contact_ids=contact_ids, include_manual_journals=include_manual_journals, start_date=start_date, end_date=end_date)
+
+Get revenue by contacts report
+
+The revenue by contact report provides a year to date profit and loss for customers and suppliers for a given organisation, including detailed contact information.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+contact_ids = ['[\"00000000-0000-0000-0000-000000000000\",\"00000000-0000-0000-0000-000000000000\"]'] # list[str] | Specifies the customer contacts to be included in the report. If no parameter is provided, all customer contacts will be included (optional)
+include_manual_journals = true # bool | Specifies whether to include the manual journals in the report. If no parameter is provided, manual journals will not be included. (optional)
+start_date = '2020-09-15' # str | Date yyyy-MM-dd Specifies the start date for the report. If no parameter is provided, the date of 12 months before the end date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency. (optional)
+end_date = '2020-09-15' # str | Date yyyy-MM-dd Specifies the end date for the report. If no parameter is provided, the current date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency. (optional)
+try:
+ # Get revenue by contacts report
+ api_response = api_instance.get_financial_statement_contacts_revenue(xero_tenant_id, contact_ids=contact_ids, include_manual_journals=include_manual_journals, start_date=start_date, end_date=end_date)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_financial_statement_contacts_revenue: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **contact_ids** | [**list[str]**](str.md)| Specifies the customer contacts to be included in the report. If no parameter is provided, all customer contacts will be included | [optional]
+ **include_manual_journals** | **bool**| Specifies whether to include the manual journals in the report. If no parameter is provided, manual journals will not be included. | [optional]
+ **start_date** | **str**| Date yyyy-MM-dd Specifies the start date for the report. If no parameter is provided, the date of 12 months before the end date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency. | [optional]
+ **end_date** | **str**| Date yyyy-MM-dd Specifies the end date for the report. If no parameter is provided, the current date will be used. It is recommended to always specify both a start date and end date; While the initial range may be set to 12 months, this may need to be reduced for high volume organisations in order to improve latency. | [optional]
+
+### Return type
+
+[**IncomeByContactResponse**](IncomeByContactResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_financial_statement_profit_and_loss**
+> ProfitAndLossResponse get_financial_statement_profit_and_loss(xero_tenant_id, start_date=start_date, end_date=end_date)
+
+Get Profit & Loss report
+
+The profit and loss statement is a standard financial report providing detailed year to date income and expense detail for an organisation.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+start_date = '2020-09-15' # str | Date e.g. yyyy-MM-dd Specifies the start date for profit and loss report If no parameter is provided, the date of 12 months before the end date will be used. (optional)
+end_date = '2021-09-15' # str | Date e.g. yyyy-MM-dd Specifies the end date for profit and loss report If no parameter is provided, the current date will be used. (optional)
+try:
+ # Get Profit & Loss report
+ api_response = api_instance.get_financial_statement_profit_and_loss(xero_tenant_id, start_date=start_date, end_date=end_date)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_financial_statement_profit_and_loss: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **start_date** | **str**| Date e.g. yyyy-MM-dd Specifies the start date for profit and loss report If no parameter is provided, the date of 12 months before the end date will be used. | [optional]
+ **end_date** | **str**| Date e.g. yyyy-MM-dd Specifies the end date for profit and loss report If no parameter is provided, the current date will be used. | [optional]
+
+### Return type
+
+[**ProfitAndLossResponse**](ProfitAndLossResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_financial_statement_trial_balance**
+> TrialBalanceResponse get_financial_statement_trial_balance(xero_tenant_id, end_date=end_date)
+
+Get Trial Balance report
+
+The trial balance provides a detailed list of all accounts of an organisation at a point in time, with revenue and expense items being year to date.
+
+### Example
+
+* OAuth Authentication (OAuth2):
+```python
+from xero_python.api_client import Configuration, ApiClient
+from xero_python.api_client.oauth2 import OAuth2Token
+from xero_python.exceptions import ApiException
+from xero_python.finance import FinanceApi
+from pprint import pprint
+
+# Configure OAuth2 access token for authorization: OAuth2
+# simplified version, `xero_oauth2_token` represents permanent global token storage
+xero_oauth2_token = {} # set to valid xero oauth2 token dictionary
+# create client configuration with client id and client secret for automatic token refresh
+api_config = Configuration(oauth2_token=OAuth2Token(
+ client_id="YOUR_API_CLIENT_ID", client_secret="YOUR_API_CLIENT_SECRET"
+))
+# configure xero-python sdk client
+api_client = ApiClient(
+ api_config,
+ oauth2_token_saver=lambda x: xero_oauth2_token.update(x),
+ oauth2_token_getter=lambda : xero_oauth2_token
+)
+# create an instance of the API class
+api_instance = FinanceApi(api_client)
+
+xero_tenant_id = 'YOUR_XERO_TENANT_ID' # str | Xero identifier for Tenant
+end_date = '2021-09-15' # str | Date e.g. yyyy-MM-dd Specifies the end date for trial balance report If no parameter is provided, the current date will be used. (optional)
+try:
+ # Get Trial Balance report
+ api_response = api_instance.get_financial_statement_trial_balance(xero_tenant_id, end_date=end_date)
+ pprint(api_response)
+except ApiException as e:
+ print("Exception when calling FinanceApi->get_financial_statement_trial_balance: %s\n" % e)
+```
+
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **xero_tenant_id** | **str**| Xero identifier for Tenant |
+ **end_date** | **str**| Date e.g. yyyy-MM-dd Specifies the end date for trial balance report If no parameter is provided, the current date will be used. | [optional]
+
+### Return type
+
+[**TrialBalanceResponse**](TrialBalanceResponse.md)
+
+### Authorization
+
+[OAuth2](../README.md#OAuth2)
+
+### HTTP request headers
+
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
diff --git a/xero_python/finance/docs/HistoryRecordResponse.md b/xero_python/finance/docs/HistoryRecordResponse.md
new file mode 100644
index 00000000..18c0dc18
--- /dev/null
+++ b/xero_python/finance/docs/HistoryRecordResponse.md
@@ -0,0 +1,14 @@
+# HistoryRecordResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**changes** | **str** | The type of change recorded against the document | [optional]
+**date_utc_string** | **str** | UTC date that the history record was created | [optional]
+**date_utc** | **datetime** | UTC date that the history record was created | [optional]
+**user** | **str** | The users first and last name | [optional]
+**details** | **str** | Description of the change event or transaction | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/IncomeByContactResponse.md b/xero_python/finance/docs/IncomeByContactResponse.md
new file mode 100644
index 00000000..a853057c
--- /dev/null
+++ b/xero_python/finance/docs/IncomeByContactResponse.md
@@ -0,0 +1,16 @@
+# IncomeByContactResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**start_date** | **date** | Start date of the report | [optional]
+**end_date** | **date** | End date of the report | [optional]
+**total** | **float** | Total value | [optional]
+**total_detail** | [**TotalDetail**](TotalDetail.md) | | [optional]
+**total_other** | [**TotalOther**](TotalOther.md) | | [optional]
+**contacts** | [**list[ContactDetail]**](ContactDetail.md) | | [optional]
+**manual_journals** | [**ManualJournalTotal**](ManualJournalTotal.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/LockHistoryModel.md b/xero_python/finance/docs/LockHistoryModel.md
new file mode 100644
index 00000000..36658c53
--- /dev/null
+++ b/xero_python/finance/docs/LockHistoryModel.md
@@ -0,0 +1,12 @@
+# LockHistoryModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**hard_lock_date** | **date** | Date the account hard lock was set | [optional]
+**soft_lock_date** | **date** | Date the account soft lock was set | [optional]
+**updated_date_utc** | **datetime** | The system date time that the lock was updated | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/LockHistoryResponse.md b/xero_python/finance/docs/LockHistoryResponse.md
new file mode 100644
index 00000000..5428149b
--- /dev/null
+++ b/xero_python/finance/docs/LockHistoryResponse.md
@@ -0,0 +1,12 @@
+# LockHistoryResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**organisation_id** | **str** | The requested Organisation to which the data pertains | [optional]
+**end_date** | **date** | The end date of the report | [optional]
+**lock_dates** | [**list[LockHistoryModel]**](LockHistoryModel.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/ManualJournalTotal.md b/xero_python/finance/docs/ManualJournalTotal.md
new file mode 100644
index 00000000..ab638cad
--- /dev/null
+++ b/xero_python/finance/docs/ManualJournalTotal.md
@@ -0,0 +1,10 @@
+# ManualJournalTotal
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total** | **float** | Total value of manual journals. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/PnlAccount.md b/xero_python/finance/docs/PnlAccount.md
new file mode 100644
index 00000000..1190791b
--- /dev/null
+++ b/xero_python/finance/docs/PnlAccount.md
@@ -0,0 +1,15 @@
+# PnlAccount
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_id** | **str** | ID of the account | [optional]
+**account_type** | **str** | The type of the account. See <a href='https://developer.xero.com/documentation/api/types#AccountTypes'>Account Types</a> | [optional]
+**code** | **str** | Account code | [optional]
+**name** | **str** | Account name | [optional]
+**reporting_code** | **str** | Reporting code (Shown if set) | [optional]
+**total** | **float** | Total movement on this account | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/PnlAccountClass.md b/xero_python/finance/docs/PnlAccountClass.md
new file mode 100644
index 00000000..2767938d
--- /dev/null
+++ b/xero_python/finance/docs/PnlAccountClass.md
@@ -0,0 +1,11 @@
+# PnlAccountClass
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total** | **float** | Total revenue/expense value | [optional]
+**account_types** | [**list[PnlAccountType]**](PnlAccountType.md) | Contains trading income and other income for revenue section / operating expenses and direct cost for expense section if the data is available for each section. Refer to the account type element below | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/PnlAccountType.md b/xero_python/finance/docs/PnlAccountType.md
new file mode 100644
index 00000000..34dd0844
--- /dev/null
+++ b/xero_python/finance/docs/PnlAccountType.md
@@ -0,0 +1,12 @@
+# PnlAccountType
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total** | **float** | Total movement on this account type | [optional]
+**title** | **str** | Name of this account type, it will be either Trading Income or Other Income for Revenue section / Direct Cost or Operating Expenses for Expense section | [optional]
+**accounts** | [**list[PnlAccount]**](PnlAccount.md) | A list of the movement on each account detail during the query period. Refer to the account detail element below | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/PracticeResponse.md b/xero_python/finance/docs/PracticeResponse.md
new file mode 100644
index 00000000..5e3f0d04
--- /dev/null
+++ b/xero_python/finance/docs/PracticeResponse.md
@@ -0,0 +1,14 @@
+# PracticeResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**xero_partner_since** | **int** | Year of becoming a partner. | [optional]
+**tier** | **str** | Customer tier e.g. Silver | [optional]
+**location** | **str** | Country of location. | [optional]
+**organisation_count** | **int** | Organisation count. | [optional]
+**staff_certified** | **bool** | Staff certified (true/false). | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/Problem.md b/xero_python/finance/docs/Problem.md
new file mode 100644
index 00000000..689b9041
--- /dev/null
+++ b/xero_python/finance/docs/Problem.md
@@ -0,0 +1,13 @@
+# Problem
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**type** | [**ProblemType**](ProblemType.md) | | [optional]
+**title** | **str** | | [optional]
+**status** | **int** | | [optional]
+**detail** | **str** | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/ProblemType.md b/xero_python/finance/docs/ProblemType.md
new file mode 100644
index 00000000..5150bbb9
--- /dev/null
+++ b/xero_python/finance/docs/ProblemType.md
@@ -0,0 +1,9 @@
+# ProblemType
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/ProfitAndLossResponse.md b/xero_python/finance/docs/ProfitAndLossResponse.md
new file mode 100644
index 00000000..393f939b
--- /dev/null
+++ b/xero_python/finance/docs/ProfitAndLossResponse.md
@@ -0,0 +1,14 @@
+# ProfitAndLossResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**start_date** | **date** | Start date of the report | [optional]
+**end_date** | **date** | End date of the report | [optional]
+**net_profit_loss** | **float** | Net profit loss value | [optional]
+**revenue** | [**PnlAccountClass**](PnlAccountClass.md) | | [optional]
+**expense** | [**PnlAccountClass**](PnlAccountClass.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/ReportHistoryModel.md b/xero_python/finance/docs/ReportHistoryModel.md
new file mode 100644
index 00000000..ec080b90
--- /dev/null
+++ b/xero_python/finance/docs/ReportHistoryModel.md
@@ -0,0 +1,12 @@
+# ReportHistoryModel
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**report_name** | **str** | Report code or report title | [optional]
+**report_date_text** | **str** | The date or date range of the report | [optional]
+**published_date_utc** | **datetime** | The system date time that the report was published | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/ReportHistoryResponse.md b/xero_python/finance/docs/ReportHistoryResponse.md
new file mode 100644
index 00000000..56489c80
--- /dev/null
+++ b/xero_python/finance/docs/ReportHistoryResponse.md
@@ -0,0 +1,12 @@
+# ReportHistoryResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**organisation_id** | **str** | The requested Organisation to which the data pertains | [optional]
+**end_date** | **date** | The end date of the report | [optional]
+**reports** | [**list[ReportHistoryModel]**](ReportHistoryModel.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/StatementBalanceResponse.md b/xero_python/finance/docs/StatementBalanceResponse.md
new file mode 100644
index 00000000..80a787d2
--- /dev/null
+++ b/xero_python/finance/docs/StatementBalanceResponse.md
@@ -0,0 +1,11 @@
+# StatementBalanceResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | **float** | Total closing balance of the account. This includes both reconciled and unreconciled bank statement lines. The closing balance will always be represented as a positive number, with it’s debit/credit status defined in the statementBalanceDebitCredit field. | [optional]
+**type** | **str** | The DEBIT or CREDIT status of the account. Cash accounts in credit have a negative balance. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/StatementLinesResponse.md b/xero_python/finance/docs/StatementLinesResponse.md
new file mode 100644
index 00000000..0acfbbcb
--- /dev/null
+++ b/xero_python/finance/docs/StatementLinesResponse.md
@@ -0,0 +1,26 @@
+# StatementLinesResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**unreconciled_amount_pos** | **float** | Sum of the amounts of all statement lines where both the reconciled flag is set to FALSE, and the amount is positive. | [optional]
+**unreconciled_amount_neg** | **float** | Sum of the amounts of all statement lines where both the reconciled flag is set to FALSE, and the amount is negative. | [optional]
+**unreconciled_lines** | **int** | Count of all statement lines where the reconciled flag is set to FALSE. | [optional]
+**avg_days_unreconciled_pos** | **float** | Sum-product of age of statement line in days multiplied by transaction amount, divided by the sum of transaction amount - in for those statement lines in which the reconciled flag is set to FALSE, and the amount is positive. Provides an indication of the age of unreconciled transactions. | [optional]
+**avg_days_unreconciled_neg** | **float** | Sum-product of age of statement line in days multiplied by transaction amount, divided by the sum of transaction amount - in for those statement lines in which the reconciled flag is set to FALSE, and the amount is negative. Provides an indication of the age of unreconciled transactions. | [optional]
+**earliest_unreconciled_transaction** | **date** | UTC Date which is the earliest transaction date of a statement line for which the reconciled flag is set to FALSE. This date is represented in ISO 8601 format. | [optional]
+**latest_unreconciled_transaction** | **date** | UTC Date which is the latest transaction date of a statement line for which the reconciled flag is set to FALSE. This date is represented in ISO 8601 format. | [optional]
+**deleted_amount** | **float** | Sum of the amounts of all deleted statement lines. Transactions may be deleted due to duplication or otherwise. | [optional]
+**total_amount** | **float** | Sum of the amounts of all statement lines. This is used as a metric of comparison to the unreconciled figures above. | [optional]
+**data_source** | [**DataSourceResponse**](DataSourceResponse.md) | | [optional]
+**earliest_reconciled_transaction** | **date** | UTC Date which is the earliest transaction date of a statement line for which the reconciled flag is set to TRUE. This date is represented in ISO 8601 format. | [optional]
+**latest_reconciled_transaction** | **date** | UTC Date which is the latest transaction date of a statement line for which the reconciled flag is set to TRUE. This date is represented in ISO 8601 format. | [optional]
+**reconciled_amount_pos** | **float** | Sum of the amounts of all statement lines where both the reconciled flag is set to TRUE, and the amount is positive. | [optional]
+**reconciled_amount_neg** | **float** | Sum of the amounts of all statement lines where both the reconciled flag is set to TRUE, and the amount is negative. | [optional]
+**reconciled_lines** | **int** | Count of all statement lines where the reconciled flag is set to TRUE | [optional]
+**total_amount_pos** | **float** | Sum of the amounts of all statement lines where the amount is positive | [optional]
+**total_amount_neg** | **float** | Sum of the amounts of all statement lines where the amount is negative. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/TotalDetail.md b/xero_python/finance/docs/TotalDetail.md
new file mode 100644
index 00000000..ac4a3915
--- /dev/null
+++ b/xero_python/finance/docs/TotalDetail.md
@@ -0,0 +1,12 @@
+# TotalDetail
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total_paid** | **float** | Total paid invoice and cash value within the period. | [optional]
+**total_outstanding** | **float** | Total outstanding invoice value within the period. | [optional]
+**total_credited_un_applied** | **float** | Total unapplied credited value within the period. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/TotalOther.md b/xero_python/finance/docs/TotalOther.md
new file mode 100644
index 00000000..87567611
--- /dev/null
+++ b/xero_python/finance/docs/TotalOther.md
@@ -0,0 +1,12 @@
+# TotalOther
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**total_outstanding_aged** | **float** | Total outstanding invoice value within the period where the invoices are more than 90 days old | [optional]
+**total_voided** | **float** | Total voided value. | [optional]
+**total_credited** | **float** | Total credited value. | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/TrialBalanceAccount.md b/xero_python/finance/docs/TrialBalanceAccount.md
new file mode 100644
index 00000000..51023461
--- /dev/null
+++ b/xero_python/finance/docs/TrialBalanceAccount.md
@@ -0,0 +1,19 @@
+# TrialBalanceAccount
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**account_id** | **str** | ID of the account | [optional]
+**account_type** | **str** | The type of the account. See <a href='https://developer.xero.com/documentation/api/types#AccountTypes'>Account Types</a> | [optional]
+**account_code** | **str** | Customer defined alpha numeric account code e.g 200 or SALES | [optional]
+**account_class** | **str** | The class of the account. See <a href='https://developer.xero.com/documentation/api/types#AccountClassTypes'>Account Class Types</a> | [optional]
+**status** | **str** | Accounts with a status of ACTIVE can be updated to ARCHIVED. See <a href='https://developer.xero.com/documentation/api/types#AccountStatusCodes'>Account Status Codes</a> | [optional]
+**reporting_code** | **str** | Reporting code (Shown if set) | [optional]
+**account_name** | **str** | Name of the account | [optional]
+**balance** | [**TrialBalanceEntry**](TrialBalanceEntry.md) | | [optional]
+**signed_balance** | **float** | Value of balance. Expense and Asset accounts code debits as positive. Revenue, Liability, and Equity accounts code debits as negative | [optional]
+**account_movement** | [**TrialBalanceMovement**](TrialBalanceMovement.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/TrialBalanceEntry.md b/xero_python/finance/docs/TrialBalanceEntry.md
new file mode 100644
index 00000000..7f71d8a4
--- /dev/null
+++ b/xero_python/finance/docs/TrialBalanceEntry.md
@@ -0,0 +1,11 @@
+# TrialBalanceEntry
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**value** | **float** | Net movement or net balance in the account | [optional]
+**entry_type** | **str** | Sign (Debit/Credit) of the movement of balance in the account | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/TrialBalanceMovement.md b/xero_python/finance/docs/TrialBalanceMovement.md
new file mode 100644
index 00000000..1b963396
--- /dev/null
+++ b/xero_python/finance/docs/TrialBalanceMovement.md
@@ -0,0 +1,13 @@
+# TrialBalanceMovement
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**debits** | **float** | Debit amount | [optional]
+**credits** | **float** | Credit amount | [optional]
+**movement** | [**TrialBalanceEntry**](TrialBalanceEntry.md) | | [optional]
+**signed_movement** | **float** | Value of movement. Expense and Asset accounts code debits as positive. Revenue, Liability, and Equity accounts code debits as negative | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/TrialBalanceResponse.md b/xero_python/finance/docs/TrialBalanceResponse.md
new file mode 100644
index 00000000..390e4ec5
--- /dev/null
+++ b/xero_python/finance/docs/TrialBalanceResponse.md
@@ -0,0 +1,12 @@
+# TrialBalanceResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**start_date** | **date** | Start date of the report | [optional]
+**end_date** | **date** | End date of the report | [optional]
+**accounts** | [**list[TrialBalanceAccount]**](TrialBalanceAccount.md) | Refer to the accounts section below | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/UserActivitiesResponse.md b/xero_python/finance/docs/UserActivitiesResponse.md
new file mode 100644
index 00000000..a082a55b
--- /dev/null
+++ b/xero_python/finance/docs/UserActivitiesResponse.md
@@ -0,0 +1,12 @@
+# UserActivitiesResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**organisation_id** | **str** | The requested Organisation to which the data pertains | [optional]
+**data_month** | **str** | The month of the report | [optional]
+**users** | [**list[UserResponse]**](UserResponse.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/docs/UserResponse.md b/xero_python/finance/docs/UserResponse.md
new file mode 100644
index 00000000..54146236
--- /dev/null
+++ b/xero_python/finance/docs/UserResponse.md
@@ -0,0 +1,21 @@
+# UserResponse
+
+## Properties
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**user_id** | **str** | The Xero identifier for the user | [optional]
+**user_created_date_utc** | **datetime** | Timestamp of user creation. | [optional]
+**last_login_date_utc** | **datetime** | Timestamp of user last login | [optional]
+**is_external_partner** | **bool** | User is external partner. | [optional]
+**has_accountant_role** | **bool** | User has Accountant role. | [optional]
+**month_period** | **str** | Month period in format yyyy-MM. | [optional]
+**number_of_logins** | **int** | Number of times the user has logged in. | [optional]
+**number_of_documents_created** | **int** | Number of documents created. | [optional]
+**net_value_documents_created** | **float** | Net value of documents created. | [optional]
+**absolute_value_documents_created** | **float** | Absolute value of documents created. | [optional]
+**attached_practices** | [**list[PracticeResponse]**](PracticeResponse.md) | | [optional]
+**history_records** | [**list[HistoryRecordResponse]**](HistoryRecordResponse.md) | | [optional]
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/xero_python/finance/models/__init__.py b/xero_python/finance/models/__init__.py
new file mode 100644
index 00000000..524499a5
--- /dev/null
+++ b/xero_python/finance/models/__init__.py
@@ -0,0 +1,69 @@
+# coding: utf-8
+
+# flake8: noqa
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+# import models into model package
+from xero_python.finance.models.account_usage import AccountUsage
+from xero_python.finance.models.account_usage_response import AccountUsageResponse
+from xero_python.finance.models.balance_sheet_account_detail import (
+ BalanceSheetAccountDetail,
+)
+from xero_python.finance.models.balance_sheet_account_group import (
+ BalanceSheetAccountGroup,
+)
+from xero_python.finance.models.balance_sheet_account_type import (
+ BalanceSheetAccountType,
+)
+from xero_python.finance.models.balance_sheet_response import BalanceSheetResponse
+from xero_python.finance.models.bank_statement_response import BankStatementResponse
+from xero_python.finance.models.cash_account_response import CashAccountResponse
+from xero_python.finance.models.cash_balance import CashBalance
+from xero_python.finance.models.cash_validation_response import CashValidationResponse
+from xero_python.finance.models.cashflow_account import CashflowAccount
+from xero_python.finance.models.cashflow_activity import CashflowActivity
+from xero_python.finance.models.cashflow_response import CashflowResponse
+from xero_python.finance.models.cashflow_type import CashflowType
+from xero_python.finance.models.contact_detail import ContactDetail
+from xero_python.finance.models.contact_total_detail import ContactTotalDetail
+from xero_python.finance.models.contact_total_other import ContactTotalOther
+from xero_python.finance.models.current_statement_response import (
+ CurrentStatementResponse,
+)
+from xero_python.finance.models.data_source_response import DataSourceResponse
+from xero_python.finance.models.history_record_response import HistoryRecordResponse
+from xero_python.finance.models.income_by_contact_response import (
+ IncomeByContactResponse,
+)
+from xero_python.finance.models.lock_history_model import LockHistoryModel
+from xero_python.finance.models.lock_history_response import LockHistoryResponse
+from xero_python.finance.models.manual_journal_total import ManualJournalTotal
+from xero_python.finance.models.pnl_account import PnlAccount
+from xero_python.finance.models.pnl_account_class import PnlAccountClass
+from xero_python.finance.models.pnl_account_type import PnlAccountType
+from xero_python.finance.models.practice_response import PracticeResponse
+from xero_python.finance.models.problem import Problem
+from xero_python.finance.models.problem_type import ProblemType
+from xero_python.finance.models.profit_and_loss_response import ProfitAndLossResponse
+from xero_python.finance.models.report_history_model import ReportHistoryModel
+from xero_python.finance.models.report_history_response import ReportHistoryResponse
+from xero_python.finance.models.statement_balance_response import (
+ StatementBalanceResponse,
+)
+from xero_python.finance.models.statement_lines_response import StatementLinesResponse
+from xero_python.finance.models.total_detail import TotalDetail
+from xero_python.finance.models.total_other import TotalOther
+from xero_python.finance.models.trial_balance_account import TrialBalanceAccount
+from xero_python.finance.models.trial_balance_entry import TrialBalanceEntry
+from xero_python.finance.models.trial_balance_movement import TrialBalanceMovement
+from xero_python.finance.models.trial_balance_response import TrialBalanceResponse
+from xero_python.finance.models.user_activities_response import UserActivitiesResponse
+from xero_python.finance.models.user_response import UserResponse
diff --git a/xero_python/finance/models/account_usage.py b/xero_python/finance/models/account_usage.py
new file mode 100644
index 00000000..8efa98ce
--- /dev/null
+++ b/xero_python/finance/models/account_usage.py
@@ -0,0 +1,421 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class AccountUsage(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "month": "str",
+ "account_id": "str",
+ "currency_code": "str",
+ "total_received": "float",
+ "count_received": "int",
+ "total_paid": "float",
+ "count_paid": "int",
+ "total_manual_journal": "float",
+ "count_manual_journal": "int",
+ "account_name": "str",
+ "reporting_code": "str",
+ "reporting_code_name": "str",
+ "report_code_updated_date_utc": "datetime",
+ }
+
+ attribute_map = {
+ "month": "month",
+ "account_id": "accountId",
+ "currency_code": "currencyCode",
+ "total_received": "totalReceived",
+ "count_received": "countReceived",
+ "total_paid": "totalPaid",
+ "count_paid": "countPaid",
+ "total_manual_journal": "totalManualJournal",
+ "count_manual_journal": "countManualJournal",
+ "account_name": "accountName",
+ "reporting_code": "reportingCode",
+ "reporting_code_name": "reportingCodeName",
+ "report_code_updated_date_utc": "reportCodeUpdatedDateUtc",
+ }
+
+ def __init__(
+ self,
+ month=None,
+ account_id=None,
+ currency_code=None,
+ total_received=None,
+ count_received=None,
+ total_paid=None,
+ count_paid=None,
+ total_manual_journal=None,
+ count_manual_journal=None,
+ account_name=None,
+ reporting_code=None,
+ reporting_code_name=None,
+ report_code_updated_date_utc=None,
+ ): # noqa: E501
+ """AccountUsage - a model defined in OpenAPI""" # noqa: E501
+
+ self._month = None
+ self._account_id = None
+ self._currency_code = None
+ self._total_received = None
+ self._count_received = None
+ self._total_paid = None
+ self._count_paid = None
+ self._total_manual_journal = None
+ self._count_manual_journal = None
+ self._account_name = None
+ self._reporting_code = None
+ self._reporting_code_name = None
+ self._report_code_updated_date_utc = None
+ self.discriminator = None
+
+ if month is not None:
+ self.month = month
+ if account_id is not None:
+ self.account_id = account_id
+ if currency_code is not None:
+ self.currency_code = currency_code
+ if total_received is not None:
+ self.total_received = total_received
+ if count_received is not None:
+ self.count_received = count_received
+ if total_paid is not None:
+ self.total_paid = total_paid
+ if count_paid is not None:
+ self.count_paid = count_paid
+ if total_manual_journal is not None:
+ self.total_manual_journal = total_manual_journal
+ if count_manual_journal is not None:
+ self.count_manual_journal = count_manual_journal
+ if account_name is not None:
+ self.account_name = account_name
+ if reporting_code is not None:
+ self.reporting_code = reporting_code
+ if reporting_code_name is not None:
+ self.reporting_code_name = reporting_code_name
+ if report_code_updated_date_utc is not None:
+ self.report_code_updated_date_utc = report_code_updated_date_utc
+
+ @property
+ def month(self):
+ """Gets the month of this AccountUsage. # noqa: E501
+
+ The month this usage item contains data for # noqa: E501
+
+ :return: The month of this AccountUsage. # noqa: E501
+ :rtype: str
+ """
+ return self._month
+
+ @month.setter
+ def month(self, month):
+ """Sets the month of this AccountUsage.
+
+ The month this usage item contains data for # noqa: E501
+
+ :param month: The month of this AccountUsage. # noqa: E501
+ :type: str
+ """
+
+ self._month = month
+
+ @property
+ def account_id(self):
+ """Gets the account_id of this AccountUsage. # noqa: E501
+
+ The account this usage item contains data for # noqa: E501
+
+ :return: The account_id of this AccountUsage. # noqa: E501
+ :rtype: str
+ """
+ return self._account_id
+
+ @account_id.setter
+ def account_id(self, account_id):
+ """Sets the account_id of this AccountUsage.
+
+ The account this usage item contains data for # noqa: E501
+
+ :param account_id: The account_id of this AccountUsage. # noqa: E501
+ :type: str
+ """
+
+ self._account_id = account_id
+
+ @property
+ def currency_code(self):
+ """Gets the currency_code of this AccountUsage. # noqa: E501
+
+ The currency code this usage item contains data for # noqa: E501
+
+ :return: The currency_code of this AccountUsage. # noqa: E501
+ :rtype: str
+ """
+ return self._currency_code
+
+ @currency_code.setter
+ def currency_code(self, currency_code):
+ """Sets the currency_code of this AccountUsage.
+
+ The currency code this usage item contains data for # noqa: E501
+
+ :param currency_code: The currency_code of this AccountUsage. # noqa: E501
+ :type: str
+ """
+
+ self._currency_code = currency_code
+
+ @property
+ def total_received(self):
+ """Gets the total_received of this AccountUsage. # noqa: E501
+
+ Total received # noqa: E501
+
+ :return: The total_received of this AccountUsage. # noqa: E501
+ :rtype: float
+ """
+ return self._total_received
+
+ @total_received.setter
+ def total_received(self, total_received):
+ """Sets the total_received of this AccountUsage.
+
+ Total received # noqa: E501
+
+ :param total_received: The total_received of this AccountUsage. # noqa: E501
+ :type: float
+ """
+
+ self._total_received = total_received
+
+ @property
+ def count_received(self):
+ """Gets the count_received of this AccountUsage. # noqa: E501
+
+ Count of received # noqa: E501
+
+ :return: The count_received of this AccountUsage. # noqa: E501
+ :rtype: int
+ """
+ return self._count_received
+
+ @count_received.setter
+ def count_received(self, count_received):
+ """Sets the count_received of this AccountUsage.
+
+ Count of received # noqa: E501
+
+ :param count_received: The count_received of this AccountUsage. # noqa: E501
+ :type: int
+ """
+
+ self._count_received = count_received
+
+ @property
+ def total_paid(self):
+ """Gets the total_paid of this AccountUsage. # noqa: E501
+
+ Total paid # noqa: E501
+
+ :return: The total_paid of this AccountUsage. # noqa: E501
+ :rtype: float
+ """
+ return self._total_paid
+
+ @total_paid.setter
+ def total_paid(self, total_paid):
+ """Sets the total_paid of this AccountUsage.
+
+ Total paid # noqa: E501
+
+ :param total_paid: The total_paid of this AccountUsage. # noqa: E501
+ :type: float
+ """
+
+ self._total_paid = total_paid
+
+ @property
+ def count_paid(self):
+ """Gets the count_paid of this AccountUsage. # noqa: E501
+
+ Count of paid # noqa: E501
+
+ :return: The count_paid of this AccountUsage. # noqa: E501
+ :rtype: int
+ """
+ return self._count_paid
+
+ @count_paid.setter
+ def count_paid(self, count_paid):
+ """Sets the count_paid of this AccountUsage.
+
+ Count of paid # noqa: E501
+
+ :param count_paid: The count_paid of this AccountUsage. # noqa: E501
+ :type: int
+ """
+
+ self._count_paid = count_paid
+
+ @property
+ def total_manual_journal(self):
+ """Gets the total_manual_journal of this AccountUsage. # noqa: E501
+
+ Total value of manual journals # noqa: E501
+
+ :return: The total_manual_journal of this AccountUsage. # noqa: E501
+ :rtype: float
+ """
+ return self._total_manual_journal
+
+ @total_manual_journal.setter
+ def total_manual_journal(self, total_manual_journal):
+ """Sets the total_manual_journal of this AccountUsage.
+
+ Total value of manual journals # noqa: E501
+
+ :param total_manual_journal: The total_manual_journal of this AccountUsage. # noqa: E501
+ :type: float
+ """
+
+ self._total_manual_journal = total_manual_journal
+
+ @property
+ def count_manual_journal(self):
+ """Gets the count_manual_journal of this AccountUsage. # noqa: E501
+
+ Count of manual journals # noqa: E501
+
+ :return: The count_manual_journal of this AccountUsage. # noqa: E501
+ :rtype: int
+ """
+ return self._count_manual_journal
+
+ @count_manual_journal.setter
+ def count_manual_journal(self, count_manual_journal):
+ """Sets the count_manual_journal of this AccountUsage.
+
+ Count of manual journals # noqa: E501
+
+ :param count_manual_journal: The count_manual_journal of this AccountUsage. # noqa: E501
+ :type: int
+ """
+
+ self._count_manual_journal = count_manual_journal
+
+ @property
+ def account_name(self):
+ """Gets the account_name of this AccountUsage. # noqa: E501
+
+ The name of the account # noqa: E501
+
+ :return: The account_name of this AccountUsage. # noqa: E501
+ :rtype: str
+ """
+ return self._account_name
+
+ @account_name.setter
+ def account_name(self, account_name):
+ """Sets the account_name of this AccountUsage.
+
+ The name of the account # noqa: E501
+
+ :param account_name: The account_name of this AccountUsage. # noqa: E501
+ :type: str
+ """
+
+ self._account_name = account_name
+
+ @property
+ def reporting_code(self):
+ """Gets the reporting_code of this AccountUsage. # noqa: E501
+
+ Shown if set # noqa: E501
+
+ :return: The reporting_code of this AccountUsage. # noqa: E501
+ :rtype: str
+ """
+ return self._reporting_code
+
+ @reporting_code.setter
+ def reporting_code(self, reporting_code):
+ """Sets the reporting_code of this AccountUsage.
+
+ Shown if set # noqa: E501
+
+ :param reporting_code: The reporting_code of this AccountUsage. # noqa: E501
+ :type: str
+ """
+
+ self._reporting_code = reporting_code
+
+ @property
+ def reporting_code_name(self):
+ """Gets the reporting_code_name of this AccountUsage. # noqa: E501
+
+ Shown if set # noqa: E501
+
+ :return: The reporting_code_name of this AccountUsage. # noqa: E501
+ :rtype: str
+ """
+ return self._reporting_code_name
+
+ @reporting_code_name.setter
+ def reporting_code_name(self, reporting_code_name):
+ """Sets the reporting_code_name of this AccountUsage.
+
+ Shown if set # noqa: E501
+
+ :param reporting_code_name: The reporting_code_name of this AccountUsage. # noqa: E501
+ :type: str
+ """
+
+ self._reporting_code_name = reporting_code_name
+
+ @property
+ def report_code_updated_date_utc(self):
+ """Gets the report_code_updated_date_utc of this AccountUsage. # noqa: E501
+
+ Last modified date UTC format # noqa: E501
+
+ :return: The report_code_updated_date_utc of this AccountUsage. # noqa: E501
+ :rtype: datetime
+ """
+ return self._report_code_updated_date_utc
+
+ @report_code_updated_date_utc.setter
+ def report_code_updated_date_utc(self, report_code_updated_date_utc):
+ """Sets the report_code_updated_date_utc of this AccountUsage.
+
+ Last modified date UTC format # noqa: E501
+
+ :param report_code_updated_date_utc: The report_code_updated_date_utc of this AccountUsage. # noqa: E501
+ :type: datetime
+ """
+
+ self._report_code_updated_date_utc = report_code_updated_date_utc
diff --git a/xero_python/finance/models/account_usage_response.py b/xero_python/finance/models/account_usage_response.py
new file mode 100644
index 00000000..5676ef13
--- /dev/null
+++ b/xero_python/finance/models/account_usage_response.py
@@ -0,0 +1,154 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class AccountUsageResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "organisation_id": "str",
+ "start_month": "str",
+ "end_month": "str",
+ "account_usage": "list[AccountUsage]",
+ }
+
+ attribute_map = {
+ "organisation_id": "organisationId",
+ "start_month": "startMonth",
+ "end_month": "endMonth",
+ "account_usage": "accountUsage",
+ }
+
+ def __init__(
+ self, organisation_id=None, start_month=None, end_month=None, account_usage=None
+ ): # noqa: E501
+ """AccountUsageResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._organisation_id = None
+ self._start_month = None
+ self._end_month = None
+ self._account_usage = None
+ self.discriminator = None
+
+ if organisation_id is not None:
+ self.organisation_id = organisation_id
+ if start_month is not None:
+ self.start_month = start_month
+ if end_month is not None:
+ self.end_month = end_month
+ if account_usage is not None:
+ self.account_usage = account_usage
+
+ @property
+ def organisation_id(self):
+ """Gets the organisation_id of this AccountUsageResponse. # noqa: E501
+
+ The requested Organisation to which the data pertains # noqa: E501
+
+ :return: The organisation_id of this AccountUsageResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._organisation_id
+
+ @organisation_id.setter
+ def organisation_id(self, organisation_id):
+ """Sets the organisation_id of this AccountUsageResponse.
+
+ The requested Organisation to which the data pertains # noqa: E501
+
+ :param organisation_id: The organisation_id of this AccountUsageResponse. # noqa: E501
+ :type: str
+ """
+
+ self._organisation_id = organisation_id
+
+ @property
+ def start_month(self):
+ """Gets the start_month of this AccountUsageResponse. # noqa: E501
+
+ The start month of the report # noqa: E501
+
+ :return: The start_month of this AccountUsageResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._start_month
+
+ @start_month.setter
+ def start_month(self, start_month):
+ """Sets the start_month of this AccountUsageResponse.
+
+ The start month of the report # noqa: E501
+
+ :param start_month: The start_month of this AccountUsageResponse. # noqa: E501
+ :type: str
+ """
+
+ self._start_month = start_month
+
+ @property
+ def end_month(self):
+ """Gets the end_month of this AccountUsageResponse. # noqa: E501
+
+ The end month of the report # noqa: E501
+
+ :return: The end_month of this AccountUsageResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._end_month
+
+ @end_month.setter
+ def end_month(self, end_month):
+ """Sets the end_month of this AccountUsageResponse.
+
+ The end month of the report # noqa: E501
+
+ :param end_month: The end_month of this AccountUsageResponse. # noqa: E501
+ :type: str
+ """
+
+ self._end_month = end_month
+
+ @property
+ def account_usage(self):
+ """Gets the account_usage of this AccountUsageResponse. # noqa: E501
+
+
+ :return: The account_usage of this AccountUsageResponse. # noqa: E501
+ :rtype: list[AccountUsage]
+ """
+ return self._account_usage
+
+ @account_usage.setter
+ def account_usage(self, account_usage):
+ """Sets the account_usage of this AccountUsageResponse.
+
+
+ :param account_usage: The account_usage of this AccountUsageResponse. # noqa: E501
+ :type: list[AccountUsage]
+ """
+
+ self._account_usage = account_usage
diff --git a/xero_python/finance/models/balance_sheet_account_detail.py b/xero_python/finance/models/balance_sheet_account_detail.py
new file mode 100644
index 00000000..659c4d18
--- /dev/null
+++ b/xero_python/finance/models/balance_sheet_account_detail.py
@@ -0,0 +1,184 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class BalanceSheetAccountDetail(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "code": "str",
+ "account_id": "str",
+ "name": "str",
+ "reporting_code": "str",
+ "total": "float",
+ }
+
+ attribute_map = {
+ "code": "code",
+ "account_id": "accountID",
+ "name": "name",
+ "reporting_code": "reportingCode",
+ "total": "total",
+ }
+
+ def __init__(
+ self, code=None, account_id=None, name=None, reporting_code=None, total=None
+ ): # noqa: E501
+ """BalanceSheetAccountDetail - a model defined in OpenAPI""" # noqa: E501
+
+ self._code = None
+ self._account_id = None
+ self._name = None
+ self._reporting_code = None
+ self._total = None
+ self.discriminator = None
+
+ if code is not None:
+ self.code = code
+ if account_id is not None:
+ self.account_id = account_id
+ if name is not None:
+ self.name = name
+ if reporting_code is not None:
+ self.reporting_code = reporting_code
+ if total is not None:
+ self.total = total
+
+ @property
+ def code(self):
+ """Gets the code of this BalanceSheetAccountDetail. # noqa: E501
+
+ Accounting code # noqa: E501
+
+ :return: The code of this BalanceSheetAccountDetail. # noqa: E501
+ :rtype: str
+ """
+ return self._code
+
+ @code.setter
+ def code(self, code):
+ """Sets the code of this BalanceSheetAccountDetail.
+
+ Accounting code # noqa: E501
+
+ :param code: The code of this BalanceSheetAccountDetail. # noqa: E501
+ :type: str
+ """
+
+ self._code = code
+
+ @property
+ def account_id(self):
+ """Gets the account_id of this BalanceSheetAccountDetail. # noqa: E501
+
+ ID of the account # noqa: E501
+
+ :return: The account_id of this BalanceSheetAccountDetail. # noqa: E501
+ :rtype: str
+ """
+ return self._account_id
+
+ @account_id.setter
+ def account_id(self, account_id):
+ """Sets the account_id of this BalanceSheetAccountDetail.
+
+ ID of the account # noqa: E501
+
+ :param account_id: The account_id of this BalanceSheetAccountDetail. # noqa: E501
+ :type: str
+ """
+
+ self._account_id = account_id
+
+ @property
+ def name(self):
+ """Gets the name of this BalanceSheetAccountDetail. # noqa: E501
+
+ Account name # noqa: E501
+
+ :return: The name of this BalanceSheetAccountDetail. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this BalanceSheetAccountDetail.
+
+ Account name # noqa: E501
+
+ :param name: The name of this BalanceSheetAccountDetail. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ @property
+ def reporting_code(self):
+ """Gets the reporting_code of this BalanceSheetAccountDetail. # noqa: E501
+
+ Reporting code # noqa: E501
+
+ :return: The reporting_code of this BalanceSheetAccountDetail. # noqa: E501
+ :rtype: str
+ """
+ return self._reporting_code
+
+ @reporting_code.setter
+ def reporting_code(self, reporting_code):
+ """Sets the reporting_code of this BalanceSheetAccountDetail.
+
+ Reporting code # noqa: E501
+
+ :param reporting_code: The reporting_code of this BalanceSheetAccountDetail. # noqa: E501
+ :type: str
+ """
+
+ self._reporting_code = reporting_code
+
+ @property
+ def total(self):
+ """Gets the total of this BalanceSheetAccountDetail. # noqa: E501
+
+ Total movement on this account # noqa: E501
+
+ :return: The total of this BalanceSheetAccountDetail. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this BalanceSheetAccountDetail.
+
+ Total movement on this account # noqa: E501
+
+ :param total: The total of this BalanceSheetAccountDetail. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
diff --git a/xero_python/finance/models/balance_sheet_account_group.py b/xero_python/finance/models/balance_sheet_account_group.py
new file mode 100644
index 00000000..3ee1e701
--- /dev/null
+++ b/xero_python/finance/models/balance_sheet_account_group.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class BalanceSheetAccountGroup(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {"account_types": "list[BalanceSheetAccountType]", "total": "float"}
+
+ attribute_map = {"account_types": "accountTypes", "total": "total"}
+
+ def __init__(self, account_types=None, total=None): # noqa: E501
+ """BalanceSheetAccountGroup - a model defined in OpenAPI""" # noqa: E501
+
+ self._account_types = None
+ self._total = None
+ self.discriminator = None
+
+ if account_types is not None:
+ self.account_types = account_types
+ if total is not None:
+ self.total = total
+
+ @property
+ def account_types(self):
+ """Gets the account_types of this BalanceSheetAccountGroup. # noqa: E501
+
+
+ :return: The account_types of this BalanceSheetAccountGroup. # noqa: E501
+ :rtype: list[BalanceSheetAccountType]
+ """
+ return self._account_types
+
+ @account_types.setter
+ def account_types(self, account_types):
+ """Sets the account_types of this BalanceSheetAccountGroup.
+
+
+ :param account_types: The account_types of this BalanceSheetAccountGroup. # noqa: E501
+ :type: list[BalanceSheetAccountType]
+ """
+
+ self._account_types = account_types
+
+ @property
+ def total(self):
+ """Gets the total of this BalanceSheetAccountGroup. # noqa: E501
+
+ Total value of all the accounts in this type # noqa: E501
+
+ :return: The total of this BalanceSheetAccountGroup. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this BalanceSheetAccountGroup.
+
+ Total value of all the accounts in this type # noqa: E501
+
+ :param total: The total of this BalanceSheetAccountGroup. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
diff --git a/xero_python/finance/models/balance_sheet_account_type.py b/xero_python/finance/models/balance_sheet_account_type.py
new file mode 100644
index 00000000..23c1aeba
--- /dev/null
+++ b/xero_python/finance/models/balance_sheet_account_type.py
@@ -0,0 +1,126 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class BalanceSheetAccountType(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "account_type": "str",
+ "accounts": "list[BalanceSheetAccountDetail]",
+ "total": "float",
+ }
+
+ attribute_map = {
+ "account_type": "accountType",
+ "accounts": "accounts",
+ "total": "total",
+ }
+
+ def __init__(self, account_type=None, accounts=None, total=None): # noqa: E501
+ """BalanceSheetAccountType - a model defined in OpenAPI""" # noqa: E501
+
+ self._account_type = None
+ self._accounts = None
+ self._total = None
+ self.discriminator = None
+
+ if account_type is not None:
+ self.account_type = account_type
+ if accounts is not None:
+ self.accounts = accounts
+ if total is not None:
+ self.total = total
+
+ @property
+ def account_type(self):
+ """Gets the account_type of this BalanceSheetAccountType. # noqa: E501
+
+ The type of the account. See Account Types # noqa: E501
+
+ :return: The account_type of this BalanceSheetAccountType. # noqa: E501
+ :rtype: str
+ """
+ return self._account_type
+
+ @account_type.setter
+ def account_type(self, account_type):
+ """Sets the account_type of this BalanceSheetAccountType.
+
+ The type of the account. See Account Types # noqa: E501
+
+ :param account_type: The account_type of this BalanceSheetAccountType. # noqa: E501
+ :type: str
+ """
+
+ self._account_type = account_type
+
+ @property
+ def accounts(self):
+ """Gets the accounts of this BalanceSheetAccountType. # noqa: E501
+
+ A list of all accounts of this type. Refer to the Account section below for each account element detail. # noqa: E501
+
+ :return: The accounts of this BalanceSheetAccountType. # noqa: E501
+ :rtype: list[BalanceSheetAccountDetail]
+ """
+ return self._accounts
+
+ @accounts.setter
+ def accounts(self, accounts):
+ """Sets the accounts of this BalanceSheetAccountType.
+
+ A list of all accounts of this type. Refer to the Account section below for each account element detail. # noqa: E501
+
+ :param accounts: The accounts of this BalanceSheetAccountType. # noqa: E501
+ :type: list[BalanceSheetAccountDetail]
+ """
+
+ self._accounts = accounts
+
+ @property
+ def total(self):
+ """Gets the total of this BalanceSheetAccountType. # noqa: E501
+
+ Total value of all the accounts in this type # noqa: E501
+
+ :return: The total of this BalanceSheetAccountType. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this BalanceSheetAccountType.
+
+ Total value of all the accounts in this type # noqa: E501
+
+ :param total: The total of this BalanceSheetAccountType. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
diff --git a/xero_python/finance/models/balance_sheet_response.py b/xero_python/finance/models/balance_sheet_response.py
new file mode 100644
index 00000000..1db7f757
--- /dev/null
+++ b/xero_python/finance/models/balance_sheet_response.py
@@ -0,0 +1,150 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class BalanceSheetResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "balance_date": "date",
+ "asset": "BalanceSheetAccountGroup",
+ "liability": "BalanceSheetAccountGroup",
+ "equity": "BalanceSheetAccountGroup",
+ }
+
+ attribute_map = {
+ "balance_date": "balanceDate",
+ "asset": "asset",
+ "liability": "liability",
+ "equity": "equity",
+ }
+
+ def __init__(
+ self, balance_date=None, asset=None, liability=None, equity=None
+ ): # noqa: E501
+ """BalanceSheetResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._balance_date = None
+ self._asset = None
+ self._liability = None
+ self._equity = None
+ self.discriminator = None
+
+ if balance_date is not None:
+ self.balance_date = balance_date
+ if asset is not None:
+ self.asset = asset
+ if liability is not None:
+ self.liability = liability
+ if equity is not None:
+ self.equity = equity
+
+ @property
+ def balance_date(self):
+ """Gets the balance_date of this BalanceSheetResponse. # noqa: E501
+
+ Balance date of the report # noqa: E501
+
+ :return: The balance_date of this BalanceSheetResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._balance_date
+
+ @balance_date.setter
+ def balance_date(self, balance_date):
+ """Sets the balance_date of this BalanceSheetResponse.
+
+ Balance date of the report # noqa: E501
+
+ :param balance_date: The balance_date of this BalanceSheetResponse. # noqa: E501
+ :type: date
+ """
+
+ self._balance_date = balance_date
+
+ @property
+ def asset(self):
+ """Gets the asset of this BalanceSheetResponse. # noqa: E501
+
+
+ :return: The asset of this BalanceSheetResponse. # noqa: E501
+ :rtype: BalanceSheetAccountGroup
+ """
+ return self._asset
+
+ @asset.setter
+ def asset(self, asset):
+ """Sets the asset of this BalanceSheetResponse.
+
+
+ :param asset: The asset of this BalanceSheetResponse. # noqa: E501
+ :type: BalanceSheetAccountGroup
+ """
+
+ self._asset = asset
+
+ @property
+ def liability(self):
+ """Gets the liability of this BalanceSheetResponse. # noqa: E501
+
+
+ :return: The liability of this BalanceSheetResponse. # noqa: E501
+ :rtype: BalanceSheetAccountGroup
+ """
+ return self._liability
+
+ @liability.setter
+ def liability(self, liability):
+ """Sets the liability of this BalanceSheetResponse.
+
+
+ :param liability: The liability of this BalanceSheetResponse. # noqa: E501
+ :type: BalanceSheetAccountGroup
+ """
+
+ self._liability = liability
+
+ @property
+ def equity(self):
+ """Gets the equity of this BalanceSheetResponse. # noqa: E501
+
+
+ :return: The equity of this BalanceSheetResponse. # noqa: E501
+ :rtype: BalanceSheetAccountGroup
+ """
+ return self._equity
+
+ @equity.setter
+ def equity(self, equity):
+ """Sets the equity of this BalanceSheetResponse.
+
+
+ :param equity: The equity of this BalanceSheetResponse. # noqa: E501
+ :type: BalanceSheetAccountGroup
+ """
+
+ self._equity = equity
diff --git a/xero_python/finance/models/bank_statement_response.py b/xero_python/finance/models/bank_statement_response.py
new file mode 100644
index 00000000..fd21ff00
--- /dev/null
+++ b/xero_python/finance/models/bank_statement_response.py
@@ -0,0 +1,94 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class BankStatementResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "statement_lines": "StatementLinesResponse",
+ "current_statement": "CurrentStatementResponse",
+ }
+
+ attribute_map = {
+ "statement_lines": "statementLines",
+ "current_statement": "currentStatement",
+ }
+
+ def __init__(self, statement_lines=None, current_statement=None): # noqa: E501
+ """BankStatementResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._statement_lines = None
+ self._current_statement = None
+ self.discriminator = None
+
+ if statement_lines is not None:
+ self.statement_lines = statement_lines
+ if current_statement is not None:
+ self.current_statement = current_statement
+
+ @property
+ def statement_lines(self):
+ """Gets the statement_lines of this BankStatementResponse. # noqa: E501
+
+
+ :return: The statement_lines of this BankStatementResponse. # noqa: E501
+ :rtype: StatementLinesResponse
+ """
+ return self._statement_lines
+
+ @statement_lines.setter
+ def statement_lines(self, statement_lines):
+ """Sets the statement_lines of this BankStatementResponse.
+
+
+ :param statement_lines: The statement_lines of this BankStatementResponse. # noqa: E501
+ :type: StatementLinesResponse
+ """
+
+ self._statement_lines = statement_lines
+
+ @property
+ def current_statement(self):
+ """Gets the current_statement of this BankStatementResponse. # noqa: E501
+
+
+ :return: The current_statement of this BankStatementResponse. # noqa: E501
+ :rtype: CurrentStatementResponse
+ """
+ return self._current_statement
+
+ @current_statement.setter
+ def current_statement(self, current_statement):
+ """Sets the current_statement of this BankStatementResponse.
+
+
+ :param current_statement: The current_statement of this BankStatementResponse. # noqa: E501
+ :type: CurrentStatementResponse
+ """
+
+ self._current_statement = current_statement
diff --git a/xero_python/finance/models/cash_account_response.py b/xero_python/finance/models/cash_account_response.py
new file mode 100644
index 00000000..6ee8c6e8
--- /dev/null
+++ b/xero_python/finance/models/cash_account_response.py
@@ -0,0 +1,189 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class CashAccountResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "unreconciled_amount_pos": "float",
+ "unreconciled_amount_neg": "float",
+ "starting_balance": "float",
+ "account_balance": "float",
+ "balance_currency": "str",
+ }
+
+ attribute_map = {
+ "unreconciled_amount_pos": "unreconciledAmountPos",
+ "unreconciled_amount_neg": "unreconciledAmountNeg",
+ "starting_balance": "startingBalance",
+ "account_balance": "accountBalance",
+ "balance_currency": "balanceCurrency",
+ }
+
+ def __init__(
+ self,
+ unreconciled_amount_pos=None,
+ unreconciled_amount_neg=None,
+ starting_balance=None,
+ account_balance=None,
+ balance_currency=None,
+ ): # noqa: E501
+ """CashAccountResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._unreconciled_amount_pos = None
+ self._unreconciled_amount_neg = None
+ self._starting_balance = None
+ self._account_balance = None
+ self._balance_currency = None
+ self.discriminator = None
+
+ if unreconciled_amount_pos is not None:
+ self.unreconciled_amount_pos = unreconciled_amount_pos
+ if unreconciled_amount_neg is not None:
+ self.unreconciled_amount_neg = unreconciled_amount_neg
+ if starting_balance is not None:
+ self.starting_balance = starting_balance
+ if account_balance is not None:
+ self.account_balance = account_balance
+ if balance_currency is not None:
+ self.balance_currency = balance_currency
+
+ @property
+ def unreconciled_amount_pos(self):
+ """Gets the unreconciled_amount_pos of this CashAccountResponse. # noqa: E501
+
+ Total value of transactions in the journals which are not reconciled to bank statement lines, and have a positive (debit) value. # noqa: E501
+
+ :return: The unreconciled_amount_pos of this CashAccountResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._unreconciled_amount_pos
+
+ @unreconciled_amount_pos.setter
+ def unreconciled_amount_pos(self, unreconciled_amount_pos):
+ """Sets the unreconciled_amount_pos of this CashAccountResponse.
+
+ Total value of transactions in the journals which are not reconciled to bank statement lines, and have a positive (debit) value. # noqa: E501
+
+ :param unreconciled_amount_pos: The unreconciled_amount_pos of this CashAccountResponse. # noqa: E501
+ :type: float
+ """
+
+ self._unreconciled_amount_pos = unreconciled_amount_pos
+
+ @property
+ def unreconciled_amount_neg(self):
+ """Gets the unreconciled_amount_neg of this CashAccountResponse. # noqa: E501
+
+ Total value of transactions in the journals which are not reconciled to bank statement lines, and have a negative (credit) value. # noqa: E501
+
+ :return: The unreconciled_amount_neg of this CashAccountResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._unreconciled_amount_neg
+
+ @unreconciled_amount_neg.setter
+ def unreconciled_amount_neg(self, unreconciled_amount_neg):
+ """Sets the unreconciled_amount_neg of this CashAccountResponse.
+
+ Total value of transactions in the journals which are not reconciled to bank statement lines, and have a negative (credit) value. # noqa: E501
+
+ :param unreconciled_amount_neg: The unreconciled_amount_neg of this CashAccountResponse. # noqa: E501
+ :type: float
+ """
+
+ self._unreconciled_amount_neg = unreconciled_amount_neg
+
+ @property
+ def starting_balance(self):
+ """Gets the starting_balance of this CashAccountResponse. # noqa: E501
+
+ Starting (or historic) balance from the journals (manually keyed in by users on account creation - unverified). # noqa: E501
+
+ :return: The starting_balance of this CashAccountResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._starting_balance
+
+ @starting_balance.setter
+ def starting_balance(self, starting_balance):
+ """Sets the starting_balance of this CashAccountResponse.
+
+ Starting (or historic) balance from the journals (manually keyed in by users on account creation - unverified). # noqa: E501
+
+ :param starting_balance: The starting_balance of this CashAccountResponse. # noqa: E501
+ :type: float
+ """
+
+ self._starting_balance = starting_balance
+
+ @property
+ def account_balance(self):
+ """Gets the account_balance of this CashAccountResponse. # noqa: E501
+
+ Current cash at bank accounting value from the journals. # noqa: E501
+
+ :return: The account_balance of this CashAccountResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._account_balance
+
+ @account_balance.setter
+ def account_balance(self, account_balance):
+ """Sets the account_balance of this CashAccountResponse.
+
+ Current cash at bank accounting value from the journals. # noqa: E501
+
+ :param account_balance: The account_balance of this CashAccountResponse. # noqa: E501
+ :type: float
+ """
+
+ self._account_balance = account_balance
+
+ @property
+ def balance_currency(self):
+ """Gets the balance_currency of this CashAccountResponse. # noqa: E501
+
+ Currency which the cashAccount transactions relate to. # noqa: E501
+
+ :return: The balance_currency of this CashAccountResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._balance_currency
+
+ @balance_currency.setter
+ def balance_currency(self, balance_currency):
+ """Sets the balance_currency of this CashAccountResponse.
+
+ Currency which the cashAccount transactions relate to. # noqa: E501
+
+ :param balance_currency: The balance_currency of this CashAccountResponse. # noqa: E501
+ :type: str
+ """
+
+ self._balance_currency = balance_currency
diff --git a/xero_python/finance/models/cash_balance.py b/xero_python/finance/models/cash_balance.py
new file mode 100644
index 00000000..253e9c58
--- /dev/null
+++ b/xero_python/finance/models/cash_balance.py
@@ -0,0 +1,131 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class CashBalance(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "opening_cash_balance": "float",
+ "closing_cash_balance": "float",
+ "net_cash_movement": "float",
+ }
+
+ attribute_map = {
+ "opening_cash_balance": "openingCashBalance",
+ "closing_cash_balance": "closingCashBalance",
+ "net_cash_movement": "netCashMovement",
+ }
+
+ def __init__(
+ self,
+ opening_cash_balance=None,
+ closing_cash_balance=None,
+ net_cash_movement=None,
+ ): # noqa: E501
+ """CashBalance - a model defined in OpenAPI""" # noqa: E501
+
+ self._opening_cash_balance = None
+ self._closing_cash_balance = None
+ self._net_cash_movement = None
+ self.discriminator = None
+
+ if opening_cash_balance is not None:
+ self.opening_cash_balance = opening_cash_balance
+ if closing_cash_balance is not None:
+ self.closing_cash_balance = closing_cash_balance
+ if net_cash_movement is not None:
+ self.net_cash_movement = net_cash_movement
+
+ @property
+ def opening_cash_balance(self):
+ """Gets the opening_cash_balance of this CashBalance. # noqa: E501
+
+ Opening balance of cash and cash equivalents # noqa: E501
+
+ :return: The opening_cash_balance of this CashBalance. # noqa: E501
+ :rtype: float
+ """
+ return self._opening_cash_balance
+
+ @opening_cash_balance.setter
+ def opening_cash_balance(self, opening_cash_balance):
+ """Sets the opening_cash_balance of this CashBalance.
+
+ Opening balance of cash and cash equivalents # noqa: E501
+
+ :param opening_cash_balance: The opening_cash_balance of this CashBalance. # noqa: E501
+ :type: float
+ """
+
+ self._opening_cash_balance = opening_cash_balance
+
+ @property
+ def closing_cash_balance(self):
+ """Gets the closing_cash_balance of this CashBalance. # noqa: E501
+
+ Closing balance of cash and cash equivalents # noqa: E501
+
+ :return: The closing_cash_balance of this CashBalance. # noqa: E501
+ :rtype: float
+ """
+ return self._closing_cash_balance
+
+ @closing_cash_balance.setter
+ def closing_cash_balance(self, closing_cash_balance):
+ """Sets the closing_cash_balance of this CashBalance.
+
+ Closing balance of cash and cash equivalents # noqa: E501
+
+ :param closing_cash_balance: The closing_cash_balance of this CashBalance. # noqa: E501
+ :type: float
+ """
+
+ self._closing_cash_balance = closing_cash_balance
+
+ @property
+ def net_cash_movement(self):
+ """Gets the net_cash_movement of this CashBalance. # noqa: E501
+
+ Net movement of cash and cash equivalents for the period # noqa: E501
+
+ :return: The net_cash_movement of this CashBalance. # noqa: E501
+ :rtype: float
+ """
+ return self._net_cash_movement
+
+ @net_cash_movement.setter
+ def net_cash_movement(self, net_cash_movement):
+ """Sets the net_cash_movement of this CashBalance.
+
+ Net movement of cash and cash equivalents for the period # noqa: E501
+
+ :param net_cash_movement: The net_cash_movement of this CashBalance. # noqa: E501
+ :type: float
+ """
+
+ self._net_cash_movement = net_cash_movement
diff --git a/xero_python/finance/models/cash_validation_response.py b/xero_python/finance/models/cash_validation_response.py
new file mode 100644
index 00000000..a932b622
--- /dev/null
+++ b/xero_python/finance/models/cash_validation_response.py
@@ -0,0 +1,183 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class CashValidationResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "account_id": "str",
+ "statement_balance": "StatementBalanceResponse",
+ "statement_balance_date": "date",
+ "bank_statement": "BankStatementResponse",
+ "cash_account": "CashAccountResponse",
+ }
+
+ attribute_map = {
+ "account_id": "accountId",
+ "statement_balance": "statementBalance",
+ "statement_balance_date": "statementBalanceDate",
+ "bank_statement": "bankStatement",
+ "cash_account": "cashAccount",
+ }
+
+ def __init__(
+ self,
+ account_id=None,
+ statement_balance=None,
+ statement_balance_date=None,
+ bank_statement=None,
+ cash_account=None,
+ ): # noqa: E501
+ """CashValidationResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._account_id = None
+ self._statement_balance = None
+ self._statement_balance_date = None
+ self._bank_statement = None
+ self._cash_account = None
+ self.discriminator = None
+
+ if account_id is not None:
+ self.account_id = account_id
+ if statement_balance is not None:
+ self.statement_balance = statement_balance
+ if statement_balance_date is not None:
+ self.statement_balance_date = statement_balance_date
+ if bank_statement is not None:
+ self.bank_statement = bank_statement
+ if cash_account is not None:
+ self.cash_account = cash_account
+
+ @property
+ def account_id(self):
+ """Gets the account_id of this CashValidationResponse. # noqa: E501
+
+ The Xero identifier for an account # noqa: E501
+
+ :return: The account_id of this CashValidationResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._account_id
+
+ @account_id.setter
+ def account_id(self, account_id):
+ """Sets the account_id of this CashValidationResponse.
+
+ The Xero identifier for an account # noqa: E501
+
+ :param account_id: The account_id of this CashValidationResponse. # noqa: E501
+ :type: str
+ """
+
+ self._account_id = account_id
+
+ @property
+ def statement_balance(self):
+ """Gets the statement_balance of this CashValidationResponse. # noqa: E501
+
+
+ :return: The statement_balance of this CashValidationResponse. # noqa: E501
+ :rtype: StatementBalanceResponse
+ """
+ return self._statement_balance
+
+ @statement_balance.setter
+ def statement_balance(self, statement_balance):
+ """Sets the statement_balance of this CashValidationResponse.
+
+
+ :param statement_balance: The statement_balance of this CashValidationResponse. # noqa: E501
+ :type: StatementBalanceResponse
+ """
+
+ self._statement_balance = statement_balance
+
+ @property
+ def statement_balance_date(self):
+ """Gets the statement_balance_date of this CashValidationResponse. # noqa: E501
+
+ UTC Date when the last bank statement item was entered into Xero. This date is represented in ISO 8601 format. # noqa: E501
+
+ :return: The statement_balance_date of this CashValidationResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._statement_balance_date
+
+ @statement_balance_date.setter
+ def statement_balance_date(self, statement_balance_date):
+ """Sets the statement_balance_date of this CashValidationResponse.
+
+ UTC Date when the last bank statement item was entered into Xero. This date is represented in ISO 8601 format. # noqa: E501
+
+ :param statement_balance_date: The statement_balance_date of this CashValidationResponse. # noqa: E501
+ :type: date
+ """
+
+ self._statement_balance_date = statement_balance_date
+
+ @property
+ def bank_statement(self):
+ """Gets the bank_statement of this CashValidationResponse. # noqa: E501
+
+
+ :return: The bank_statement of this CashValidationResponse. # noqa: E501
+ :rtype: BankStatementResponse
+ """
+ return self._bank_statement
+
+ @bank_statement.setter
+ def bank_statement(self, bank_statement):
+ """Sets the bank_statement of this CashValidationResponse.
+
+
+ :param bank_statement: The bank_statement of this CashValidationResponse. # noqa: E501
+ :type: BankStatementResponse
+ """
+
+ self._bank_statement = bank_statement
+
+ @property
+ def cash_account(self):
+ """Gets the cash_account of this CashValidationResponse. # noqa: E501
+
+
+ :return: The cash_account of this CashValidationResponse. # noqa: E501
+ :rtype: CashAccountResponse
+ """
+ return self._cash_account
+
+ @cash_account.setter
+ def cash_account(self, cash_account):
+ """Sets the cash_account of this CashValidationResponse.
+
+
+ :param cash_account: The cash_account of this CashValidationResponse. # noqa: E501
+ :type: CashAccountResponse
+ """
+
+ self._cash_account = cash_account
diff --git a/xero_python/finance/models/cashflow_account.py b/xero_python/finance/models/cashflow_account.py
new file mode 100644
index 00000000..00bf4d17
--- /dev/null
+++ b/xero_python/finance/models/cashflow_account.py
@@ -0,0 +1,247 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class CashflowAccount(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "account_id": "str",
+ "account_type": "str",
+ "account_class": "str",
+ "code": "str",
+ "name": "str",
+ "reporting_code": "str",
+ "total": "float",
+ }
+
+ attribute_map = {
+ "account_id": "accountId",
+ "account_type": "accountType",
+ "account_class": "accountClass",
+ "code": "code",
+ "name": "name",
+ "reporting_code": "reportingCode",
+ "total": "total",
+ }
+
+ def __init__(
+ self,
+ account_id=None,
+ account_type=None,
+ account_class=None,
+ code=None,
+ name=None,
+ reporting_code=None,
+ total=None,
+ ): # noqa: E501
+ """CashflowAccount - a model defined in OpenAPI""" # noqa: E501
+
+ self._account_id = None
+ self._account_type = None
+ self._account_class = None
+ self._code = None
+ self._name = None
+ self._reporting_code = None
+ self._total = None
+ self.discriminator = None
+
+ if account_id is not None:
+ self.account_id = account_id
+ if account_type is not None:
+ self.account_type = account_type
+ if account_class is not None:
+ self.account_class = account_class
+ if code is not None:
+ self.code = code
+ if name is not None:
+ self.name = name
+ if reporting_code is not None:
+ self.reporting_code = reporting_code
+ if total is not None:
+ self.total = total
+
+ @property
+ def account_id(self):
+ """Gets the account_id of this CashflowAccount. # noqa: E501
+
+ ID of the account # noqa: E501
+
+ :return: The account_id of this CashflowAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_id
+
+ @account_id.setter
+ def account_id(self, account_id):
+ """Sets the account_id of this CashflowAccount.
+
+ ID of the account # noqa: E501
+
+ :param account_id: The account_id of this CashflowAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_id = account_id
+
+ @property
+ def account_type(self):
+ """Gets the account_type of this CashflowAccount. # noqa: E501
+
+ The type of the account. See Account Types # noqa: E501
+
+ :return: The account_type of this CashflowAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_type
+
+ @account_type.setter
+ def account_type(self, account_type):
+ """Sets the account_type of this CashflowAccount.
+
+ The type of the account. See Account Types # noqa: E501
+
+ :param account_type: The account_type of this CashflowAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_type = account_type
+
+ @property
+ def account_class(self):
+ """Gets the account_class of this CashflowAccount. # noqa: E501
+
+ The class of the account. See Account Class Types # noqa: E501
+
+ :return: The account_class of this CashflowAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_class
+
+ @account_class.setter
+ def account_class(self, account_class):
+ """Sets the account_class of this CashflowAccount.
+
+ The class of the account. See Account Class Types # noqa: E501
+
+ :param account_class: The account_class of this CashflowAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_class = account_class
+
+ @property
+ def code(self):
+ """Gets the code of this CashflowAccount. # noqa: E501
+
+ Account code # noqa: E501
+
+ :return: The code of this CashflowAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._code
+
+ @code.setter
+ def code(self, code):
+ """Sets the code of this CashflowAccount.
+
+ Account code # noqa: E501
+
+ :param code: The code of this CashflowAccount. # noqa: E501
+ :type: str
+ """
+
+ self._code = code
+
+ @property
+ def name(self):
+ """Gets the name of this CashflowAccount. # noqa: E501
+
+ Account name # noqa: E501
+
+ :return: The name of this CashflowAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this CashflowAccount.
+
+ Account name # noqa: E501
+
+ :param name: The name of this CashflowAccount. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ @property
+ def reporting_code(self):
+ """Gets the reporting_code of this CashflowAccount. # noqa: E501
+
+ Reporting code used for cash flow classification # noqa: E501
+
+ :return: The reporting_code of this CashflowAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._reporting_code
+
+ @reporting_code.setter
+ def reporting_code(self, reporting_code):
+ """Sets the reporting_code of this CashflowAccount.
+
+ Reporting code used for cash flow classification # noqa: E501
+
+ :param reporting_code: The reporting_code of this CashflowAccount. # noqa: E501
+ :type: str
+ """
+
+ self._reporting_code = reporting_code
+
+ @property
+ def total(self):
+ """Gets the total of this CashflowAccount. # noqa: E501
+
+ Total amount for the account # noqa: E501
+
+ :return: The total of this CashflowAccount. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this CashflowAccount.
+
+ Total amount for the account # noqa: E501
+
+ :param total: The total of this CashflowAccount. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
diff --git a/xero_python/finance/models/cashflow_activity.py b/xero_python/finance/models/cashflow_activity.py
new file mode 100644
index 00000000..f31a5575
--- /dev/null
+++ b/xero_python/finance/models/cashflow_activity.py
@@ -0,0 +1,124 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class CashflowActivity(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "name": "str",
+ "total": "float",
+ "cashflow_types": "list[CashflowType]",
+ }
+
+ attribute_map = {
+ "name": "name",
+ "total": "total",
+ "cashflow_types": "cashflowTypes",
+ }
+
+ def __init__(self, name=None, total=None, cashflow_types=None): # noqa: E501
+ """CashflowActivity - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self._total = None
+ self._cashflow_types = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+ if total is not None:
+ self.total = total
+ if cashflow_types is not None:
+ self.cashflow_types = cashflow_types
+
+ @property
+ def name(self):
+ """Gets the name of this CashflowActivity. # noqa: E501
+
+ Name of the cashflow activity type. It will be either Operating Activities, Investing Activities or Financing Activities # noqa: E501
+
+ :return: The name of this CashflowActivity. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this CashflowActivity.
+
+ Name of the cashflow activity type. It will be either Operating Activities, Investing Activities or Financing Activities # noqa: E501
+
+ :param name: The name of this CashflowActivity. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ @property
+ def total(self):
+ """Gets the total of this CashflowActivity. # noqa: E501
+
+ Total value of the activity type # noqa: E501
+
+ :return: The total of this CashflowActivity. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this CashflowActivity.
+
+ Total value of the activity type # noqa: E501
+
+ :param total: The total of this CashflowActivity. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
+
+ @property
+ def cashflow_types(self):
+ """Gets the cashflow_types of this CashflowActivity. # noqa: E501
+
+
+ :return: The cashflow_types of this CashflowActivity. # noqa: E501
+ :rtype: list[CashflowType]
+ """
+ return self._cashflow_types
+
+ @cashflow_types.setter
+ def cashflow_types(self, cashflow_types):
+ """Sets the cashflow_types of this CashflowActivity.
+
+
+ :param cashflow_types: The cashflow_types of this CashflowActivity. # noqa: E501
+ :type: list[CashflowType]
+ """
+
+ self._cashflow_types = cashflow_types
diff --git a/xero_python/finance/models/cashflow_response.py b/xero_python/finance/models/cashflow_response.py
new file mode 100644
index 00000000..e2371ece
--- /dev/null
+++ b/xero_python/finance/models/cashflow_response.py
@@ -0,0 +1,158 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class CashflowResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "start_date": "date",
+ "end_date": "date",
+ "cash_balance": "CashBalance",
+ "cashflow_activities": "list[CashflowActivity]",
+ }
+
+ attribute_map = {
+ "start_date": "startDate",
+ "end_date": "endDate",
+ "cash_balance": "cashBalance",
+ "cashflow_activities": "cashflowActivities",
+ }
+
+ def __init__(
+ self,
+ start_date=None,
+ end_date=None,
+ cash_balance=None,
+ cashflow_activities=None,
+ ): # noqa: E501
+ """CashflowResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._start_date = None
+ self._end_date = None
+ self._cash_balance = None
+ self._cashflow_activities = None
+ self.discriminator = None
+
+ if start_date is not None:
+ self.start_date = start_date
+ if end_date is not None:
+ self.end_date = end_date
+ if cash_balance is not None:
+ self.cash_balance = cash_balance
+ if cashflow_activities is not None:
+ self.cashflow_activities = cashflow_activities
+
+ @property
+ def start_date(self):
+ """Gets the start_date of this CashflowResponse. # noqa: E501
+
+ Start date of the report # noqa: E501
+
+ :return: The start_date of this CashflowResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._start_date
+
+ @start_date.setter
+ def start_date(self, start_date):
+ """Sets the start_date of this CashflowResponse.
+
+ Start date of the report # noqa: E501
+
+ :param start_date: The start_date of this CashflowResponse. # noqa: E501
+ :type: date
+ """
+
+ self._start_date = start_date
+
+ @property
+ def end_date(self):
+ """Gets the end_date of this CashflowResponse. # noqa: E501
+
+ End date of the report # noqa: E501
+
+ :return: The end_date of this CashflowResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._end_date
+
+ @end_date.setter
+ def end_date(self, end_date):
+ """Sets the end_date of this CashflowResponse.
+
+ End date of the report # noqa: E501
+
+ :param end_date: The end_date of this CashflowResponse. # noqa: E501
+ :type: date
+ """
+
+ self._end_date = end_date
+
+ @property
+ def cash_balance(self):
+ """Gets the cash_balance of this CashflowResponse. # noqa: E501
+
+
+ :return: The cash_balance of this CashflowResponse. # noqa: E501
+ :rtype: CashBalance
+ """
+ return self._cash_balance
+
+ @cash_balance.setter
+ def cash_balance(self, cash_balance):
+ """Sets the cash_balance of this CashflowResponse.
+
+
+ :param cash_balance: The cash_balance of this CashflowResponse. # noqa: E501
+ :type: CashBalance
+ """
+
+ self._cash_balance = cash_balance
+
+ @property
+ def cashflow_activities(self):
+ """Gets the cashflow_activities of this CashflowResponse. # noqa: E501
+
+ Break down of cash and cash equivalents for the period # noqa: E501
+
+ :return: The cashflow_activities of this CashflowResponse. # noqa: E501
+ :rtype: list[CashflowActivity]
+ """
+ return self._cashflow_activities
+
+ @cashflow_activities.setter
+ def cashflow_activities(self, cashflow_activities):
+ """Sets the cashflow_activities of this CashflowResponse.
+
+ Break down of cash and cash equivalents for the period # noqa: E501
+
+ :param cashflow_activities: The cashflow_activities of this CashflowResponse. # noqa: E501
+ :type: list[CashflowActivity]
+ """
+
+ self._cashflow_activities = cashflow_activities
diff --git a/xero_python/finance/models/cashflow_type.py b/xero_python/finance/models/cashflow_type.py
new file mode 100644
index 00000000..8abba627
--- /dev/null
+++ b/xero_python/finance/models/cashflow_type.py
@@ -0,0 +1,122 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class CashflowType(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "name": "str",
+ "total": "float",
+ "accounts": "list[CashflowAccount]",
+ }
+
+ attribute_map = {"name": "name", "total": "total", "accounts": "accounts"}
+
+ def __init__(self, name=None, total=None, accounts=None): # noqa: E501
+ """CashflowType - a model defined in OpenAPI""" # noqa: E501
+
+ self._name = None
+ self._total = None
+ self._accounts = None
+ self.discriminator = None
+
+ if name is not None:
+ self.name = name
+ if total is not None:
+ self.total = total
+ if accounts is not None:
+ self.accounts = accounts
+
+ @property
+ def name(self):
+ """Gets the name of this CashflowType. # noqa: E501
+
+ Name of the activity # noqa: E501
+
+ :return: The name of this CashflowType. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this CashflowType.
+
+ Name of the activity # noqa: E501
+
+ :param name: The name of this CashflowType. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ @property
+ def total(self):
+ """Gets the total of this CashflowType. # noqa: E501
+
+ Total value of the activity # noqa: E501
+
+ :return: The total of this CashflowType. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this CashflowType.
+
+ Total value of the activity # noqa: E501
+
+ :param total: The total of this CashflowType. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
+
+ @property
+ def accounts(self):
+ """Gets the accounts of this CashflowType. # noqa: E501
+
+ List of the accounts in this activity # noqa: E501
+
+ :return: The accounts of this CashflowType. # noqa: E501
+ :rtype: list[CashflowAccount]
+ """
+ return self._accounts
+
+ @accounts.setter
+ def accounts(self, accounts):
+ """Sets the accounts of this CashflowType.
+
+ List of the accounts in this activity # noqa: E501
+
+ :param accounts: The accounts of this CashflowType. # noqa: E501
+ :type: list[CashflowAccount]
+ """
+
+ self._accounts = accounts
diff --git a/xero_python/finance/models/contact_detail.py b/xero_python/finance/models/contact_detail.py
new file mode 100644
index 00000000..86c8b103
--- /dev/null
+++ b/xero_python/finance/models/contact_detail.py
@@ -0,0 +1,214 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class ContactDetail(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "contact_id": "str",
+ "name": "str",
+ "total": "float",
+ "total_detail": "ContactTotalDetail",
+ "total_other": "ContactTotalOther",
+ "account_codes": "list[str]",
+ }
+
+ attribute_map = {
+ "contact_id": "contactId",
+ "name": "name",
+ "total": "total",
+ "total_detail": "totalDetail",
+ "total_other": "totalOther",
+ "account_codes": "accountCodes",
+ }
+
+ def __init__(
+ self,
+ contact_id=None,
+ name=None,
+ total=None,
+ total_detail=None,
+ total_other=None,
+ account_codes=None,
+ ): # noqa: E501
+ """ContactDetail - a model defined in OpenAPI""" # noqa: E501
+
+ self._contact_id = None
+ self._name = None
+ self._total = None
+ self._total_detail = None
+ self._total_other = None
+ self._account_codes = None
+ self.discriminator = None
+
+ if contact_id is not None:
+ self.contact_id = contact_id
+ if name is not None:
+ self.name = name
+ if total is not None:
+ self.total = total
+ if total_detail is not None:
+ self.total_detail = total_detail
+ if total_other is not None:
+ self.total_other = total_other
+ if account_codes is not None:
+ self.account_codes = account_codes
+
+ @property
+ def contact_id(self):
+ """Gets the contact_id of this ContactDetail. # noqa: E501
+
+ ID of the contact associated with the transactions. Transactions with no contact will be grouped under the special ID: 86793108-198C-46D8-90A3-43C1D12686CE. Transactions that are receive or spend bank transfers will be grouped under the special ID: 207322B3-6A58-4BE7-80F1-430123914AD6 # noqa: E501
+
+ :return: The contact_id of this ContactDetail. # noqa: E501
+ :rtype: str
+ """
+ return self._contact_id
+
+ @contact_id.setter
+ def contact_id(self, contact_id):
+ """Sets the contact_id of this ContactDetail.
+
+ ID of the contact associated with the transactions. Transactions with no contact will be grouped under the special ID: 86793108-198C-46D8-90A3-43C1D12686CE. Transactions that are receive or spend bank transfers will be grouped under the special ID: 207322B3-6A58-4BE7-80F1-430123914AD6 # noqa: E501
+
+ :param contact_id: The contact_id of this ContactDetail. # noqa: E501
+ :type: str
+ """
+
+ self._contact_id = contact_id
+
+ @property
+ def name(self):
+ """Gets the name of this ContactDetail. # noqa: E501
+
+ Name of the contact associated with the transactions. If no contact is associated with the transactions this will appear as “None Provided”, For receive or spend bank transfer transactions, this will appear as “Bank Transfer”. # noqa: E501
+
+ :return: The name of this ContactDetail. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this ContactDetail.
+
+ Name of the contact associated with the transactions. If no contact is associated with the transactions this will appear as “None Provided”, For receive or spend bank transfer transactions, this will appear as “Bank Transfer”. # noqa: E501
+
+ :param name: The name of this ContactDetail. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ @property
+ def total(self):
+ """Gets the total of this ContactDetail. # noqa: E501
+
+ Total value for the contact # noqa: E501
+
+ :return: The total of this ContactDetail. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this ContactDetail.
+
+ Total value for the contact # noqa: E501
+
+ :param total: The total of this ContactDetail. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
+
+ @property
+ def total_detail(self):
+ """Gets the total_detail of this ContactDetail. # noqa: E501
+
+
+ :return: The total_detail of this ContactDetail. # noqa: E501
+ :rtype: ContactTotalDetail
+ """
+ return self._total_detail
+
+ @total_detail.setter
+ def total_detail(self, total_detail):
+ """Sets the total_detail of this ContactDetail.
+
+
+ :param total_detail: The total_detail of this ContactDetail. # noqa: E501
+ :type: ContactTotalDetail
+ """
+
+ self._total_detail = total_detail
+
+ @property
+ def total_other(self):
+ """Gets the total_other of this ContactDetail. # noqa: E501
+
+
+ :return: The total_other of this ContactDetail. # noqa: E501
+ :rtype: ContactTotalOther
+ """
+ return self._total_other
+
+ @total_other.setter
+ def total_other(self, total_other):
+ """Sets the total_other of this ContactDetail.
+
+
+ :param total_other: The total_other of this ContactDetail. # noqa: E501
+ :type: ContactTotalOther
+ """
+
+ self._total_other = total_other
+
+ @property
+ def account_codes(self):
+ """Gets the account_codes of this ContactDetail. # noqa: E501
+
+ A list of account codes involved in transactions. # noqa: E501
+
+ :return: The account_codes of this ContactDetail. # noqa: E501
+ :rtype: list[str]
+ """
+ return self._account_codes
+
+ @account_codes.setter
+ def account_codes(self, account_codes):
+ """Sets the account_codes of this ContactDetail.
+
+ A list of account codes involved in transactions. # noqa: E501
+
+ :param account_codes: The account_codes of this ContactDetail. # noqa: E501
+ :type: list[str]
+ """
+
+ self._account_codes = account_codes
diff --git a/xero_python/finance/models/contact_total_detail.py b/xero_python/finance/models/contact_total_detail.py
new file mode 100644
index 00000000..a1ac88e8
--- /dev/null
+++ b/xero_python/finance/models/contact_total_detail.py
@@ -0,0 +1,128 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class ContactTotalDetail(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "total_paid": "float",
+ "total_outstanding": "float",
+ "total_credited_un_applied": "float",
+ }
+
+ attribute_map = {
+ "total_paid": "totalPaid",
+ "total_outstanding": "totalOutstanding",
+ "total_credited_un_applied": "totalCreditedUnApplied",
+ }
+
+ def __init__(
+ self, total_paid=None, total_outstanding=None, total_credited_un_applied=None
+ ): # noqa: E501
+ """ContactTotalDetail - a model defined in OpenAPI""" # noqa: E501
+
+ self._total_paid = None
+ self._total_outstanding = None
+ self._total_credited_un_applied = None
+ self.discriminator = None
+
+ if total_paid is not None:
+ self.total_paid = total_paid
+ if total_outstanding is not None:
+ self.total_outstanding = total_outstanding
+ if total_credited_un_applied is not None:
+ self.total_credited_un_applied = total_credited_un_applied
+
+ @property
+ def total_paid(self):
+ """Gets the total_paid of this ContactTotalDetail. # noqa: E501
+
+ Total paid invoice and cash value for the contact within the period. # noqa: E501
+
+ :return: The total_paid of this ContactTotalDetail. # noqa: E501
+ :rtype: float
+ """
+ return self._total_paid
+
+ @total_paid.setter
+ def total_paid(self, total_paid):
+ """Sets the total_paid of this ContactTotalDetail.
+
+ Total paid invoice and cash value for the contact within the period. # noqa: E501
+
+ :param total_paid: The total_paid of this ContactTotalDetail. # noqa: E501
+ :type: float
+ """
+
+ self._total_paid = total_paid
+
+ @property
+ def total_outstanding(self):
+ """Gets the total_outstanding of this ContactTotalDetail. # noqa: E501
+
+ Total outstanding invoice value for the contact within the period. # noqa: E501
+
+ :return: The total_outstanding of this ContactTotalDetail. # noqa: E501
+ :rtype: float
+ """
+ return self._total_outstanding
+
+ @total_outstanding.setter
+ def total_outstanding(self, total_outstanding):
+ """Sets the total_outstanding of this ContactTotalDetail.
+
+ Total outstanding invoice value for the contact within the period. # noqa: E501
+
+ :param total_outstanding: The total_outstanding of this ContactTotalDetail. # noqa: E501
+ :type: float
+ """
+
+ self._total_outstanding = total_outstanding
+
+ @property
+ def total_credited_un_applied(self):
+ """Gets the total_credited_un_applied of this ContactTotalDetail. # noqa: E501
+
+ Total unapplied credited value for the contact within the period. # noqa: E501
+
+ :return: The total_credited_un_applied of this ContactTotalDetail. # noqa: E501
+ :rtype: float
+ """
+ return self._total_credited_un_applied
+
+ @total_credited_un_applied.setter
+ def total_credited_un_applied(self, total_credited_un_applied):
+ """Sets the total_credited_un_applied of this ContactTotalDetail.
+
+ Total unapplied credited value for the contact within the period. # noqa: E501
+
+ :param total_credited_un_applied: The total_credited_un_applied of this ContactTotalDetail. # noqa: E501
+ :type: float
+ """
+
+ self._total_credited_un_applied = total_credited_un_applied
diff --git a/xero_python/finance/models/contact_total_other.py b/xero_python/finance/models/contact_total_other.py
new file mode 100644
index 00000000..c2ad5331
--- /dev/null
+++ b/xero_python/finance/models/contact_total_other.py
@@ -0,0 +1,160 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class ContactTotalOther(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "total_outstanding_aged": "float",
+ "total_voided": "float",
+ "total_credited": "float",
+ "transaction_count": "int",
+ }
+
+ attribute_map = {
+ "total_outstanding_aged": "totalOutstandingAged",
+ "total_voided": "totalVoided",
+ "total_credited": "totalCredited",
+ "transaction_count": "transactionCount",
+ }
+
+ def __init__(
+ self,
+ total_outstanding_aged=None,
+ total_voided=None,
+ total_credited=None,
+ transaction_count=None,
+ ): # noqa: E501
+ """ContactTotalOther - a model defined in OpenAPI""" # noqa: E501
+
+ self._total_outstanding_aged = None
+ self._total_voided = None
+ self._total_credited = None
+ self._transaction_count = None
+ self.discriminator = None
+
+ if total_outstanding_aged is not None:
+ self.total_outstanding_aged = total_outstanding_aged
+ if total_voided is not None:
+ self.total_voided = total_voided
+ if total_credited is not None:
+ self.total_credited = total_credited
+ if transaction_count is not None:
+ self.transaction_count = transaction_count
+
+ @property
+ def total_outstanding_aged(self):
+ """Gets the total_outstanding_aged of this ContactTotalOther. # noqa: E501
+
+ Total outstanding invoice value for the contact within the period where the invoices are more than 90 days old # noqa: E501
+
+ :return: The total_outstanding_aged of this ContactTotalOther. # noqa: E501
+ :rtype: float
+ """
+ return self._total_outstanding_aged
+
+ @total_outstanding_aged.setter
+ def total_outstanding_aged(self, total_outstanding_aged):
+ """Sets the total_outstanding_aged of this ContactTotalOther.
+
+ Total outstanding invoice value for the contact within the period where the invoices are more than 90 days old # noqa: E501
+
+ :param total_outstanding_aged: The total_outstanding_aged of this ContactTotalOther. # noqa: E501
+ :type: float
+ """
+
+ self._total_outstanding_aged = total_outstanding_aged
+
+ @property
+ def total_voided(self):
+ """Gets the total_voided of this ContactTotalOther. # noqa: E501
+
+ Total voided value for the contact. # noqa: E501
+
+ :return: The total_voided of this ContactTotalOther. # noqa: E501
+ :rtype: float
+ """
+ return self._total_voided
+
+ @total_voided.setter
+ def total_voided(self, total_voided):
+ """Sets the total_voided of this ContactTotalOther.
+
+ Total voided value for the contact. # noqa: E501
+
+ :param total_voided: The total_voided of this ContactTotalOther. # noqa: E501
+ :type: float
+ """
+
+ self._total_voided = total_voided
+
+ @property
+ def total_credited(self):
+ """Gets the total_credited of this ContactTotalOther. # noqa: E501
+
+ Total credited value for the contact. # noqa: E501
+
+ :return: The total_credited of this ContactTotalOther. # noqa: E501
+ :rtype: float
+ """
+ return self._total_credited
+
+ @total_credited.setter
+ def total_credited(self, total_credited):
+ """Sets the total_credited of this ContactTotalOther.
+
+ Total credited value for the contact. # noqa: E501
+
+ :param total_credited: The total_credited of this ContactTotalOther. # noqa: E501
+ :type: float
+ """
+
+ self._total_credited = total_credited
+
+ @property
+ def transaction_count(self):
+ """Gets the transaction_count of this ContactTotalOther. # noqa: E501
+
+ Number of transactions for the contact. # noqa: E501
+
+ :return: The transaction_count of this ContactTotalOther. # noqa: E501
+ :rtype: int
+ """
+ return self._transaction_count
+
+ @transaction_count.setter
+ def transaction_count(self, transaction_count):
+ """Sets the transaction_count of this ContactTotalOther.
+
+ Number of transactions for the contact. # noqa: E501
+
+ :param transaction_count: The transaction_count of this ContactTotalOther. # noqa: E501
+ :type: int
+ """
+
+ self._transaction_count = transaction_count
diff --git a/xero_python/finance/models/current_statement_response.py b/xero_python/finance/models/current_statement_response.py
new file mode 100644
index 00000000..363f3ee2
--- /dev/null
+++ b/xero_python/finance/models/current_statement_response.py
@@ -0,0 +1,218 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class CurrentStatementResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "start_date": "date",
+ "end_date": "date",
+ "start_balance": "float",
+ "end_balance": "float",
+ "imported_date_time_utc": "datetime",
+ "import_source_type": "str",
+ }
+
+ attribute_map = {
+ "start_date": "startDate",
+ "end_date": "endDate",
+ "start_balance": "startBalance",
+ "end_balance": "endBalance",
+ "imported_date_time_utc": "importedDateTimeUtc",
+ "import_source_type": "importSourceType",
+ }
+
+ def __init__(
+ self,
+ start_date=None,
+ end_date=None,
+ start_balance=None,
+ end_balance=None,
+ imported_date_time_utc=None,
+ import_source_type=None,
+ ): # noqa: E501
+ """CurrentStatementResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._start_date = None
+ self._end_date = None
+ self._start_balance = None
+ self._end_balance = None
+ self._imported_date_time_utc = None
+ self._import_source_type = None
+ self.discriminator = None
+
+ if start_date is not None:
+ self.start_date = start_date
+ if end_date is not None:
+ self.end_date = end_date
+ if start_balance is not None:
+ self.start_balance = start_balance
+ if end_balance is not None:
+ self.end_balance = end_balance
+ if imported_date_time_utc is not None:
+ self.imported_date_time_utc = imported_date_time_utc
+ if import_source_type is not None:
+ self.import_source_type = import_source_type
+
+ @property
+ def start_date(self):
+ """Gets the start_date of this CurrentStatementResponse. # noqa: E501
+
+ Looking at the most recent bank statement, this field indicates the first date which transactions on this statement pertain to. This date is represented in ISO 8601 format. # noqa: E501
+
+ :return: The start_date of this CurrentStatementResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._start_date
+
+ @start_date.setter
+ def start_date(self, start_date):
+ """Sets the start_date of this CurrentStatementResponse.
+
+ Looking at the most recent bank statement, this field indicates the first date which transactions on this statement pertain to. This date is represented in ISO 8601 format. # noqa: E501
+
+ :param start_date: The start_date of this CurrentStatementResponse. # noqa: E501
+ :type: date
+ """
+
+ self._start_date = start_date
+
+ @property
+ def end_date(self):
+ """Gets the end_date of this CurrentStatementResponse. # noqa: E501
+
+ Looking at the most recent bank statement, this field indicates the last date which transactions on this statement pertain to. This date is represented in ISO 8601 format. # noqa: E501
+
+ :return: The end_date of this CurrentStatementResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._end_date
+
+ @end_date.setter
+ def end_date(self, end_date):
+ """Sets the end_date of this CurrentStatementResponse.
+
+ Looking at the most recent bank statement, this field indicates the last date which transactions on this statement pertain to. This date is represented in ISO 8601 format. # noqa: E501
+
+ :param end_date: The end_date of this CurrentStatementResponse. # noqa: E501
+ :type: date
+ """
+
+ self._end_date = end_date
+
+ @property
+ def start_balance(self):
+ """Gets the start_balance of this CurrentStatementResponse. # noqa: E501
+
+ Looking at the most recent bank statement, this field indicates the balance before the transactions on the statement are applied (note, this is not always populated by the bank in every single instance (~10%)). # noqa: E501
+
+ :return: The start_balance of this CurrentStatementResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._start_balance
+
+ @start_balance.setter
+ def start_balance(self, start_balance):
+ """Sets the start_balance of this CurrentStatementResponse.
+
+ Looking at the most recent bank statement, this field indicates the balance before the transactions on the statement are applied (note, this is not always populated by the bank in every single instance (~10%)). # noqa: E501
+
+ :param start_balance: The start_balance of this CurrentStatementResponse. # noqa: E501
+ :type: float
+ """
+
+ self._start_balance = start_balance
+
+ @property
+ def end_balance(self):
+ """Gets the end_balance of this CurrentStatementResponse. # noqa: E501
+
+ Looking at the most recent bank statement, this field indicates the balance after the transactions on the statement are applied (note, this is not always populated by the bank in every single instance (~10%)). # noqa: E501
+
+ :return: The end_balance of this CurrentStatementResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._end_balance
+
+ @end_balance.setter
+ def end_balance(self, end_balance):
+ """Sets the end_balance of this CurrentStatementResponse.
+
+ Looking at the most recent bank statement, this field indicates the balance after the transactions on the statement are applied (note, this is not always populated by the bank in every single instance (~10%)). # noqa: E501
+
+ :param end_balance: The end_balance of this CurrentStatementResponse. # noqa: E501
+ :type: float
+ """
+
+ self._end_balance = end_balance
+
+ @property
+ def imported_date_time_utc(self):
+ """Gets the imported_date_time_utc of this CurrentStatementResponse. # noqa: E501
+
+ Looking at the most recent bank statement, this field indicates when the document was imported into Xero. This date is represented in ISO 8601 format. # noqa: E501
+
+ :return: The imported_date_time_utc of this CurrentStatementResponse. # noqa: E501
+ :rtype: datetime
+ """
+ return self._imported_date_time_utc
+
+ @imported_date_time_utc.setter
+ def imported_date_time_utc(self, imported_date_time_utc):
+ """Sets the imported_date_time_utc of this CurrentStatementResponse.
+
+ Looking at the most recent bank statement, this field indicates when the document was imported into Xero. This date is represented in ISO 8601 format. # noqa: E501
+
+ :param imported_date_time_utc: The imported_date_time_utc of this CurrentStatementResponse. # noqa: E501
+ :type: datetime
+ """
+
+ self._imported_date_time_utc = imported_date_time_utc
+
+ @property
+ def import_source_type(self):
+ """Gets the import_source_type of this CurrentStatementResponse. # noqa: E501
+
+ Looking at the most recent bank statement, this field indicates the source of the data (direct bank feed, indirect bank feed, file upload, or manual keying). # noqa: E501
+
+ :return: The import_source_type of this CurrentStatementResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._import_source_type
+
+ @import_source_type.setter
+ def import_source_type(self, import_source_type):
+ """Sets the import_source_type of this CurrentStatementResponse.
+
+ Looking at the most recent bank statement, this field indicates the source of the data (direct bank feed, indirect bank feed, file upload, or manual keying). # noqa: E501
+
+ :param import_source_type: The import_source_type of this CurrentStatementResponse. # noqa: E501
+ :type: str
+ """
+
+ self._import_source_type = import_source_type
diff --git a/xero_python/finance/models/data_source_response.py b/xero_python/finance/models/data_source_response.py
new file mode 100644
index 00000000..a3b33ba6
--- /dev/null
+++ b/xero_python/finance/models/data_source_response.py
@@ -0,0 +1,479 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class DataSourceResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "direct_bank_feed": "float",
+ "indirect_bank_feed": "float",
+ "file_upload": "float",
+ "manual": "float",
+ "direct_bank_feed_pos": "float",
+ "indirect_bank_feed_pos": "float",
+ "file_upload_pos": "float",
+ "manual_pos": "float",
+ "direct_bank_feed_neg": "float",
+ "indirect_bank_feed_neg": "float",
+ "file_upload_neg": "float",
+ "manual_neg": "float",
+ "other_pos": "float",
+ "other_neg": "float",
+ "other": "float",
+ }
+
+ attribute_map = {
+ "direct_bank_feed": "directBankFeed",
+ "indirect_bank_feed": "indirectBankFeed",
+ "file_upload": "fileUpload",
+ "manual": "manual",
+ "direct_bank_feed_pos": "directBankFeedPos",
+ "indirect_bank_feed_pos": "indirectBankFeedPos",
+ "file_upload_pos": "fileUploadPos",
+ "manual_pos": "manualPos",
+ "direct_bank_feed_neg": "directBankFeedNeg",
+ "indirect_bank_feed_neg": "indirectBankFeedNeg",
+ "file_upload_neg": "fileUploadNeg",
+ "manual_neg": "manualNeg",
+ "other_pos": "otherPos",
+ "other_neg": "otherNeg",
+ "other": "other",
+ }
+
+ def __init__(
+ self,
+ direct_bank_feed=None,
+ indirect_bank_feed=None,
+ file_upload=None,
+ manual=None,
+ direct_bank_feed_pos=None,
+ indirect_bank_feed_pos=None,
+ file_upload_pos=None,
+ manual_pos=None,
+ direct_bank_feed_neg=None,
+ indirect_bank_feed_neg=None,
+ file_upload_neg=None,
+ manual_neg=None,
+ other_pos=None,
+ other_neg=None,
+ other=None,
+ ): # noqa: E501
+ """DataSourceResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._direct_bank_feed = None
+ self._indirect_bank_feed = None
+ self._file_upload = None
+ self._manual = None
+ self._direct_bank_feed_pos = None
+ self._indirect_bank_feed_pos = None
+ self._file_upload_pos = None
+ self._manual_pos = None
+ self._direct_bank_feed_neg = None
+ self._indirect_bank_feed_neg = None
+ self._file_upload_neg = None
+ self._manual_neg = None
+ self._other_pos = None
+ self._other_neg = None
+ self._other = None
+ self.discriminator = None
+
+ if direct_bank_feed is not None:
+ self.direct_bank_feed = direct_bank_feed
+ if indirect_bank_feed is not None:
+ self.indirect_bank_feed = indirect_bank_feed
+ if file_upload is not None:
+ self.file_upload = file_upload
+ if manual is not None:
+ self.manual = manual
+ if direct_bank_feed_pos is not None:
+ self.direct_bank_feed_pos = direct_bank_feed_pos
+ if indirect_bank_feed_pos is not None:
+ self.indirect_bank_feed_pos = indirect_bank_feed_pos
+ if file_upload_pos is not None:
+ self.file_upload_pos = file_upload_pos
+ if manual_pos is not None:
+ self.manual_pos = manual_pos
+ if direct_bank_feed_neg is not None:
+ self.direct_bank_feed_neg = direct_bank_feed_neg
+ if indirect_bank_feed_neg is not None:
+ self.indirect_bank_feed_neg = indirect_bank_feed_neg
+ if file_upload_neg is not None:
+ self.file_upload_neg = file_upload_neg
+ if manual_neg is not None:
+ self.manual_neg = manual_neg
+ if other_pos is not None:
+ self.other_pos = other_pos
+ if other_neg is not None:
+ self.other_neg = other_neg
+ if other is not None:
+ self.other = other
+
+ @property
+ def direct_bank_feed(self):
+ """Gets the direct_bank_feed of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero. This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :return: The direct_bank_feed of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._direct_bank_feed
+
+ @direct_bank_feed.setter
+ def direct_bank_feed(self, direct_bank_feed):
+ """Sets the direct_bank_feed of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero. This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :param direct_bank_feed: The direct_bank_feed of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._direct_bank_feed = direct_bank_feed
+
+ @property
+ def indirect_bank_feed(self):
+ """Gets the indirect_bank_feed of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was a indirect bank feed to Xero (usually via Yodlee). This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :return: The indirect_bank_feed of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._indirect_bank_feed
+
+ @indirect_bank_feed.setter
+ def indirect_bank_feed(self, indirect_bank_feed):
+ """Sets the indirect_bank_feed of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was a indirect bank feed to Xero (usually via Yodlee). This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :param indirect_bank_feed: The indirect_bank_feed of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._indirect_bank_feed = indirect_bank_feed
+
+ @property
+ def file_upload(self):
+ """Gets the file_upload of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was a CSV file upload in to Xero. This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :return: The file_upload of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._file_upload
+
+ @file_upload.setter
+ def file_upload(self, file_upload):
+ """Sets the file_upload of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was a CSV file upload in to Xero. This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :param file_upload: The file_upload of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._file_upload = file_upload
+
+ @property
+ def manual(self):
+ """Gets the manual of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was manually keyed in to Xero. This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :return: The manual of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._manual
+
+ @manual.setter
+ def manual(self, manual):
+ """Sets the manual of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was manually keyed in to Xero. This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :param manual: The manual of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._manual = manual
+
+ @property
+ def direct_bank_feed_pos(self):
+ """Gets the direct_bank_feed_pos of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :return: The direct_bank_feed_pos of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._direct_bank_feed_pos
+
+ @direct_bank_feed_pos.setter
+ def direct_bank_feed_pos(self, direct_bank_feed_pos):
+ """Sets the direct_bank_feed_pos of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :param direct_bank_feed_pos: The direct_bank_feed_pos of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._direct_bank_feed_pos = direct_bank_feed_pos
+
+ @property
+ def indirect_bank_feed_pos(self):
+ """Gets the indirect_bank_feed_pos of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was a indirect bank feed to Xero (usually via Yodlee). This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :return: The indirect_bank_feed_pos of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._indirect_bank_feed_pos
+
+ @indirect_bank_feed_pos.setter
+ def indirect_bank_feed_pos(self, indirect_bank_feed_pos):
+ """Sets the indirect_bank_feed_pos of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was a indirect bank feed to Xero (usually via Yodlee). This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :param indirect_bank_feed_pos: The indirect_bank_feed_pos of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._indirect_bank_feed_pos = indirect_bank_feed_pos
+
+ @property
+ def file_upload_pos(self):
+ """Gets the file_upload_pos of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was a CSV file upload in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :return: The file_upload_pos of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._file_upload_pos
+
+ @file_upload_pos.setter
+ def file_upload_pos(self, file_upload_pos):
+ """Sets the file_upload_pos of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was a CSV file upload in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :param file_upload_pos: The file_upload_pos of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._file_upload_pos = file_upload_pos
+
+ @property
+ def manual_pos(self):
+ """Gets the manual_pos of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was manually keyed in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :return: The manual_pos of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._manual_pos
+
+ @manual_pos.setter
+ def manual_pos(self, manual_pos):
+ """Sets the manual_pos of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was manually keyed in to Xero. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :param manual_pos: The manual_pos of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._manual_pos = manual_pos
+
+ @property
+ def direct_bank_feed_neg(self):
+ """Gets the direct_bank_feed_neg of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :return: The direct_bank_feed_neg of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._direct_bank_feed_neg
+
+ @direct_bank_feed_neg.setter
+ def direct_bank_feed_neg(self, direct_bank_feed_neg):
+ """Sets the direct_bank_feed_neg of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was a direct bank feed in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :param direct_bank_feed_neg: The direct_bank_feed_neg of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._direct_bank_feed_neg = direct_bank_feed_neg
+
+ @property
+ def indirect_bank_feed_neg(self):
+ """Gets the indirect_bank_feed_neg of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was a indirect bank feed to Xero (usually via Yodlee). This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :return: The indirect_bank_feed_neg of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._indirect_bank_feed_neg
+
+ @indirect_bank_feed_neg.setter
+ def indirect_bank_feed_neg(self, indirect_bank_feed_neg):
+ """Sets the indirect_bank_feed_neg of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was a indirect bank feed to Xero (usually via Yodlee). This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :param indirect_bank_feed_neg: The indirect_bank_feed_neg of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._indirect_bank_feed_neg = indirect_bank_feed_neg
+
+ @property
+ def file_upload_neg(self):
+ """Gets the file_upload_neg of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was a CSV file upload in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :return: The file_upload_neg of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._file_upload_neg
+
+ @file_upload_neg.setter
+ def file_upload_neg(self, file_upload_neg):
+ """Sets the file_upload_neg of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was a CSV file upload in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :param file_upload_neg: The file_upload_neg of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._file_upload_neg = file_upload_neg
+
+ @property
+ def manual_neg(self):
+ """Gets the manual_neg of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was manually keyed in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :return: The manual_neg of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._manual_neg
+
+ @manual_neg.setter
+ def manual_neg(self, manual_neg):
+ """Sets the manual_neg of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was manually keyed in to Xero. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :param manual_neg: The manual_neg of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._manual_neg = manual_neg
+
+ @property
+ def other_pos(self):
+ """Gets the other_pos of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was any other category. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :return: The other_pos of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._other_pos
+
+ @other_pos.setter
+ def other_pos(self, other_pos):
+ """Sets the other_pos of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was any other category. This gives an indication on the certainty of correctness of the data. Only positive transactions are included. # noqa: E501
+
+ :param other_pos: The other_pos of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._other_pos = other_pos
+
+ @property
+ def other_neg(self):
+ """Gets the other_neg of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was any other category. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :return: The other_neg of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._other_neg
+
+ @other_neg.setter
+ def other_neg(self, other_neg):
+ """Sets the other_neg of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was any other category. This gives an indication on the certainty of correctness of the data. Only negative transactions are included. # noqa: E501
+
+ :param other_neg: The other_neg of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._other_neg = other_neg
+
+ @property
+ def other(self):
+ """Gets the other of this DataSourceResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the source of the data was any other category. This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :return: The other of this DataSourceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._other
+
+ @other.setter
+ def other(self, other):
+ """Sets the other of this DataSourceResponse.
+
+ Sum of the amounts of all statement lines where the source of the data was any other category. This gives an indication on the certainty of correctness of the data. # noqa: E501
+
+ :param other: The other of this DataSourceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._other = other
diff --git a/xero_python/finance/models/history_record_response.py b/xero_python/finance/models/history_record_response.py
new file mode 100644
index 00000000..513e9e03
--- /dev/null
+++ b/xero_python/finance/models/history_record_response.py
@@ -0,0 +1,184 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class HistoryRecordResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "changes": "str",
+ "date_utc_string": "str",
+ "date_utc": "datetime",
+ "user": "str",
+ "details": "str",
+ }
+
+ attribute_map = {
+ "changes": "changes",
+ "date_utc_string": "dateUTCString",
+ "date_utc": "dateUTC",
+ "user": "user",
+ "details": "details",
+ }
+
+ def __init__(
+ self, changes=None, date_utc_string=None, date_utc=None, user=None, details=None
+ ): # noqa: E501
+ """HistoryRecordResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._changes = None
+ self._date_utc_string = None
+ self._date_utc = None
+ self._user = None
+ self._details = None
+ self.discriminator = None
+
+ if changes is not None:
+ self.changes = changes
+ if date_utc_string is not None:
+ self.date_utc_string = date_utc_string
+ if date_utc is not None:
+ self.date_utc = date_utc
+ if user is not None:
+ self.user = user
+ if details is not None:
+ self.details = details
+
+ @property
+ def changes(self):
+ """Gets the changes of this HistoryRecordResponse. # noqa: E501
+
+ The type of change recorded against the document # noqa: E501
+
+ :return: The changes of this HistoryRecordResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._changes
+
+ @changes.setter
+ def changes(self, changes):
+ """Sets the changes of this HistoryRecordResponse.
+
+ The type of change recorded against the document # noqa: E501
+
+ :param changes: The changes of this HistoryRecordResponse. # noqa: E501
+ :type: str
+ """
+
+ self._changes = changes
+
+ @property
+ def date_utc_string(self):
+ """Gets the date_utc_string of this HistoryRecordResponse. # noqa: E501
+
+ UTC date that the history record was created # noqa: E501
+
+ :return: The date_utc_string of this HistoryRecordResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._date_utc_string
+
+ @date_utc_string.setter
+ def date_utc_string(self, date_utc_string):
+ """Sets the date_utc_string of this HistoryRecordResponse.
+
+ UTC date that the history record was created # noqa: E501
+
+ :param date_utc_string: The date_utc_string of this HistoryRecordResponse. # noqa: E501
+ :type: str
+ """
+
+ self._date_utc_string = date_utc_string
+
+ @property
+ def date_utc(self):
+ """Gets the date_utc of this HistoryRecordResponse. # noqa: E501
+
+ UTC date that the history record was created # noqa: E501
+
+ :return: The date_utc of this HistoryRecordResponse. # noqa: E501
+ :rtype: datetime
+ """
+ return self._date_utc
+
+ @date_utc.setter
+ def date_utc(self, date_utc):
+ """Sets the date_utc of this HistoryRecordResponse.
+
+ UTC date that the history record was created # noqa: E501
+
+ :param date_utc: The date_utc of this HistoryRecordResponse. # noqa: E501
+ :type: datetime
+ """
+
+ self._date_utc = date_utc
+
+ @property
+ def user(self):
+ """Gets the user of this HistoryRecordResponse. # noqa: E501
+
+ The users first and last name # noqa: E501
+
+ :return: The user of this HistoryRecordResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._user
+
+ @user.setter
+ def user(self, user):
+ """Sets the user of this HistoryRecordResponse.
+
+ The users first and last name # noqa: E501
+
+ :param user: The user of this HistoryRecordResponse. # noqa: E501
+ :type: str
+ """
+
+ self._user = user
+
+ @property
+ def details(self):
+ """Gets the details of this HistoryRecordResponse. # noqa: E501
+
+ Description of the change event or transaction # noqa: E501
+
+ :return: The details of this HistoryRecordResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._details
+
+ @details.setter
+ def details(self, details):
+ """Sets the details of this HistoryRecordResponse.
+
+ Description of the change event or transaction # noqa: E501
+
+ :param details: The details of this HistoryRecordResponse. # noqa: E501
+ :type: str
+ """
+
+ self._details = details
diff --git a/xero_python/finance/models/income_by_contact_response.py b/xero_python/finance/models/income_by_contact_response.py
new file mode 100644
index 00000000..5918562a
--- /dev/null
+++ b/xero_python/finance/models/income_by_contact_response.py
@@ -0,0 +1,239 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class IncomeByContactResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "start_date": "date",
+ "end_date": "date",
+ "total": "float",
+ "total_detail": "TotalDetail",
+ "total_other": "TotalOther",
+ "contacts": "list[ContactDetail]",
+ "manual_journals": "ManualJournalTotal",
+ }
+
+ attribute_map = {
+ "start_date": "startDate",
+ "end_date": "endDate",
+ "total": "total",
+ "total_detail": "totalDetail",
+ "total_other": "totalOther",
+ "contacts": "contacts",
+ "manual_journals": "manualJournals",
+ }
+
+ def __init__(
+ self,
+ start_date=None,
+ end_date=None,
+ total=None,
+ total_detail=None,
+ total_other=None,
+ contacts=None,
+ manual_journals=None,
+ ): # noqa: E501
+ """IncomeByContactResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._start_date = None
+ self._end_date = None
+ self._total = None
+ self._total_detail = None
+ self._total_other = None
+ self._contacts = None
+ self._manual_journals = None
+ self.discriminator = None
+
+ if start_date is not None:
+ self.start_date = start_date
+ if end_date is not None:
+ self.end_date = end_date
+ if total is not None:
+ self.total = total
+ if total_detail is not None:
+ self.total_detail = total_detail
+ if total_other is not None:
+ self.total_other = total_other
+ if contacts is not None:
+ self.contacts = contacts
+ if manual_journals is not None:
+ self.manual_journals = manual_journals
+
+ @property
+ def start_date(self):
+ """Gets the start_date of this IncomeByContactResponse. # noqa: E501
+
+ Start date of the report # noqa: E501
+
+ :return: The start_date of this IncomeByContactResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._start_date
+
+ @start_date.setter
+ def start_date(self, start_date):
+ """Sets the start_date of this IncomeByContactResponse.
+
+ Start date of the report # noqa: E501
+
+ :param start_date: The start_date of this IncomeByContactResponse. # noqa: E501
+ :type: date
+ """
+
+ self._start_date = start_date
+
+ @property
+ def end_date(self):
+ """Gets the end_date of this IncomeByContactResponse. # noqa: E501
+
+ End date of the report # noqa: E501
+
+ :return: The end_date of this IncomeByContactResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._end_date
+
+ @end_date.setter
+ def end_date(self, end_date):
+ """Sets the end_date of this IncomeByContactResponse.
+
+ End date of the report # noqa: E501
+
+ :param end_date: The end_date of this IncomeByContactResponse. # noqa: E501
+ :type: date
+ """
+
+ self._end_date = end_date
+
+ @property
+ def total(self):
+ """Gets the total of this IncomeByContactResponse. # noqa: E501
+
+ Total value # noqa: E501
+
+ :return: The total of this IncomeByContactResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this IncomeByContactResponse.
+
+ Total value # noqa: E501
+
+ :param total: The total of this IncomeByContactResponse. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
+
+ @property
+ def total_detail(self):
+ """Gets the total_detail of this IncomeByContactResponse. # noqa: E501
+
+
+ :return: The total_detail of this IncomeByContactResponse. # noqa: E501
+ :rtype: TotalDetail
+ """
+ return self._total_detail
+
+ @total_detail.setter
+ def total_detail(self, total_detail):
+ """Sets the total_detail of this IncomeByContactResponse.
+
+
+ :param total_detail: The total_detail of this IncomeByContactResponse. # noqa: E501
+ :type: TotalDetail
+ """
+
+ self._total_detail = total_detail
+
+ @property
+ def total_other(self):
+ """Gets the total_other of this IncomeByContactResponse. # noqa: E501
+
+
+ :return: The total_other of this IncomeByContactResponse. # noqa: E501
+ :rtype: TotalOther
+ """
+ return self._total_other
+
+ @total_other.setter
+ def total_other(self, total_other):
+ """Sets the total_other of this IncomeByContactResponse.
+
+
+ :param total_other: The total_other of this IncomeByContactResponse. # noqa: E501
+ :type: TotalOther
+ """
+
+ self._total_other = total_other
+
+ @property
+ def contacts(self):
+ """Gets the contacts of this IncomeByContactResponse. # noqa: E501
+
+
+ :return: The contacts of this IncomeByContactResponse. # noqa: E501
+ :rtype: list[ContactDetail]
+ """
+ return self._contacts
+
+ @contacts.setter
+ def contacts(self, contacts):
+ """Sets the contacts of this IncomeByContactResponse.
+
+
+ :param contacts: The contacts of this IncomeByContactResponse. # noqa: E501
+ :type: list[ContactDetail]
+ """
+
+ self._contacts = contacts
+
+ @property
+ def manual_journals(self):
+ """Gets the manual_journals of this IncomeByContactResponse. # noqa: E501
+
+
+ :return: The manual_journals of this IncomeByContactResponse. # noqa: E501
+ :rtype: ManualJournalTotal
+ """
+ return self._manual_journals
+
+ @manual_journals.setter
+ def manual_journals(self, manual_journals):
+ """Sets the manual_journals of this IncomeByContactResponse.
+
+
+ :param manual_journals: The manual_journals of this IncomeByContactResponse. # noqa: E501
+ :type: ManualJournalTotal
+ """
+
+ self._manual_journals = manual_journals
diff --git a/xero_python/finance/models/lock_history_model.py b/xero_python/finance/models/lock_history_model.py
new file mode 100644
index 00000000..f9195bc9
--- /dev/null
+++ b/xero_python/finance/models/lock_history_model.py
@@ -0,0 +1,128 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class LockHistoryModel(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "hard_lock_date": "date",
+ "soft_lock_date": "date",
+ "updated_date_utc": "datetime",
+ }
+
+ attribute_map = {
+ "hard_lock_date": "hardLockDate",
+ "soft_lock_date": "softLockDate",
+ "updated_date_utc": "updatedDateUtc",
+ }
+
+ def __init__(
+ self, hard_lock_date=None, soft_lock_date=None, updated_date_utc=None
+ ): # noqa: E501
+ """LockHistoryModel - a model defined in OpenAPI""" # noqa: E501
+
+ self._hard_lock_date = None
+ self._soft_lock_date = None
+ self._updated_date_utc = None
+ self.discriminator = None
+
+ if hard_lock_date is not None:
+ self.hard_lock_date = hard_lock_date
+ if soft_lock_date is not None:
+ self.soft_lock_date = soft_lock_date
+ if updated_date_utc is not None:
+ self.updated_date_utc = updated_date_utc
+
+ @property
+ def hard_lock_date(self):
+ """Gets the hard_lock_date of this LockHistoryModel. # noqa: E501
+
+ Date the account hard lock was set # noqa: E501
+
+ :return: The hard_lock_date of this LockHistoryModel. # noqa: E501
+ :rtype: date
+ """
+ return self._hard_lock_date
+
+ @hard_lock_date.setter
+ def hard_lock_date(self, hard_lock_date):
+ """Sets the hard_lock_date of this LockHistoryModel.
+
+ Date the account hard lock was set # noqa: E501
+
+ :param hard_lock_date: The hard_lock_date of this LockHistoryModel. # noqa: E501
+ :type: date
+ """
+
+ self._hard_lock_date = hard_lock_date
+
+ @property
+ def soft_lock_date(self):
+ """Gets the soft_lock_date of this LockHistoryModel. # noqa: E501
+
+ Date the account soft lock was set # noqa: E501
+
+ :return: The soft_lock_date of this LockHistoryModel. # noqa: E501
+ :rtype: date
+ """
+ return self._soft_lock_date
+
+ @soft_lock_date.setter
+ def soft_lock_date(self, soft_lock_date):
+ """Sets the soft_lock_date of this LockHistoryModel.
+
+ Date the account soft lock was set # noqa: E501
+
+ :param soft_lock_date: The soft_lock_date of this LockHistoryModel. # noqa: E501
+ :type: date
+ """
+
+ self._soft_lock_date = soft_lock_date
+
+ @property
+ def updated_date_utc(self):
+ """Gets the updated_date_utc of this LockHistoryModel. # noqa: E501
+
+ The system date time that the lock was updated # noqa: E501
+
+ :return: The updated_date_utc of this LockHistoryModel. # noqa: E501
+ :rtype: datetime
+ """
+ return self._updated_date_utc
+
+ @updated_date_utc.setter
+ def updated_date_utc(self, updated_date_utc):
+ """Sets the updated_date_utc of this LockHistoryModel.
+
+ The system date time that the lock was updated # noqa: E501
+
+ :param updated_date_utc: The updated_date_utc of this LockHistoryModel. # noqa: E501
+ :type: datetime
+ """
+
+ self._updated_date_utc = updated_date_utc
diff --git a/xero_python/finance/models/lock_history_response.py b/xero_python/finance/models/lock_history_response.py
new file mode 100644
index 00000000..ce7b3477
--- /dev/null
+++ b/xero_python/finance/models/lock_history_response.py
@@ -0,0 +1,126 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class LockHistoryResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "organisation_id": "str",
+ "end_date": "date",
+ "lock_dates": "list[LockHistoryModel]",
+ }
+
+ attribute_map = {
+ "organisation_id": "organisationId",
+ "end_date": "endDate",
+ "lock_dates": "lockDates",
+ }
+
+ def __init__(
+ self, organisation_id=None, end_date=None, lock_dates=None
+ ): # noqa: E501
+ """LockHistoryResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._organisation_id = None
+ self._end_date = None
+ self._lock_dates = None
+ self.discriminator = None
+
+ if organisation_id is not None:
+ self.organisation_id = organisation_id
+ if end_date is not None:
+ self.end_date = end_date
+ if lock_dates is not None:
+ self.lock_dates = lock_dates
+
+ @property
+ def organisation_id(self):
+ """Gets the organisation_id of this LockHistoryResponse. # noqa: E501
+
+ The requested Organisation to which the data pertains # noqa: E501
+
+ :return: The organisation_id of this LockHistoryResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._organisation_id
+
+ @organisation_id.setter
+ def organisation_id(self, organisation_id):
+ """Sets the organisation_id of this LockHistoryResponse.
+
+ The requested Organisation to which the data pertains # noqa: E501
+
+ :param organisation_id: The organisation_id of this LockHistoryResponse. # noqa: E501
+ :type: str
+ """
+
+ self._organisation_id = organisation_id
+
+ @property
+ def end_date(self):
+ """Gets the end_date of this LockHistoryResponse. # noqa: E501
+
+ The end date of the report # noqa: E501
+
+ :return: The end_date of this LockHistoryResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._end_date
+
+ @end_date.setter
+ def end_date(self, end_date):
+ """Sets the end_date of this LockHistoryResponse.
+
+ The end date of the report # noqa: E501
+
+ :param end_date: The end_date of this LockHistoryResponse. # noqa: E501
+ :type: date
+ """
+
+ self._end_date = end_date
+
+ @property
+ def lock_dates(self):
+ """Gets the lock_dates of this LockHistoryResponse. # noqa: E501
+
+
+ :return: The lock_dates of this LockHistoryResponse. # noqa: E501
+ :rtype: list[LockHistoryModel]
+ """
+ return self._lock_dates
+
+ @lock_dates.setter
+ def lock_dates(self, lock_dates):
+ """Sets the lock_dates of this LockHistoryResponse.
+
+
+ :param lock_dates: The lock_dates of this LockHistoryResponse. # noqa: E501
+ :type: list[LockHistoryModel]
+ """
+
+ self._lock_dates = lock_dates
diff --git a/xero_python/finance/models/manual_journal_total.py b/xero_python/finance/models/manual_journal_total.py
new file mode 100644
index 00000000..37aaba2a
--- /dev/null
+++ b/xero_python/finance/models/manual_journal_total.py
@@ -0,0 +1,66 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class ManualJournalTotal(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {"total": "float"}
+
+ attribute_map = {"total": "total"}
+
+ def __init__(self, total=None): # noqa: E501
+ """ManualJournalTotal - a model defined in OpenAPI""" # noqa: E501
+
+ self._total = None
+ self.discriminator = None
+
+ if total is not None:
+ self.total = total
+
+ @property
+ def total(self):
+ """Gets the total of this ManualJournalTotal. # noqa: E501
+
+ Total value of manual journals. # noqa: E501
+
+ :return: The total of this ManualJournalTotal. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this ManualJournalTotal.
+
+ Total value of manual journals. # noqa: E501
+
+ :param total: The total of this ManualJournalTotal. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
diff --git a/xero_python/finance/models/pnl_account.py b/xero_python/finance/models/pnl_account.py
new file mode 100644
index 00000000..b37a0288
--- /dev/null
+++ b/xero_python/finance/models/pnl_account.py
@@ -0,0 +1,218 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class PnlAccount(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "account_id": "str",
+ "account_type": "str",
+ "code": "str",
+ "name": "str",
+ "reporting_code": "str",
+ "total": "float",
+ }
+
+ attribute_map = {
+ "account_id": "accountID",
+ "account_type": "accountType",
+ "code": "code",
+ "name": "name",
+ "reporting_code": "reportingCode",
+ "total": "total",
+ }
+
+ def __init__(
+ self,
+ account_id=None,
+ account_type=None,
+ code=None,
+ name=None,
+ reporting_code=None,
+ total=None,
+ ): # noqa: E501
+ """PnlAccount - a model defined in OpenAPI""" # noqa: E501
+
+ self._account_id = None
+ self._account_type = None
+ self._code = None
+ self._name = None
+ self._reporting_code = None
+ self._total = None
+ self.discriminator = None
+
+ if account_id is not None:
+ self.account_id = account_id
+ if account_type is not None:
+ self.account_type = account_type
+ if code is not None:
+ self.code = code
+ if name is not None:
+ self.name = name
+ if reporting_code is not None:
+ self.reporting_code = reporting_code
+ if total is not None:
+ self.total = total
+
+ @property
+ def account_id(self):
+ """Gets the account_id of this PnlAccount. # noqa: E501
+
+ ID of the account # noqa: E501
+
+ :return: The account_id of this PnlAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_id
+
+ @account_id.setter
+ def account_id(self, account_id):
+ """Sets the account_id of this PnlAccount.
+
+ ID of the account # noqa: E501
+
+ :param account_id: The account_id of this PnlAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_id = account_id
+
+ @property
+ def account_type(self):
+ """Gets the account_type of this PnlAccount. # noqa: E501
+
+ The type of the account. See Account Types # noqa: E501
+
+ :return: The account_type of this PnlAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_type
+
+ @account_type.setter
+ def account_type(self, account_type):
+ """Sets the account_type of this PnlAccount.
+
+ The type of the account. See Account Types # noqa: E501
+
+ :param account_type: The account_type of this PnlAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_type = account_type
+
+ @property
+ def code(self):
+ """Gets the code of this PnlAccount. # noqa: E501
+
+ Account code # noqa: E501
+
+ :return: The code of this PnlAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._code
+
+ @code.setter
+ def code(self, code):
+ """Sets the code of this PnlAccount.
+
+ Account code # noqa: E501
+
+ :param code: The code of this PnlAccount. # noqa: E501
+ :type: str
+ """
+
+ self._code = code
+
+ @property
+ def name(self):
+ """Gets the name of this PnlAccount. # noqa: E501
+
+ Account name # noqa: E501
+
+ :return: The name of this PnlAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._name
+
+ @name.setter
+ def name(self, name):
+ """Sets the name of this PnlAccount.
+
+ Account name # noqa: E501
+
+ :param name: The name of this PnlAccount. # noqa: E501
+ :type: str
+ """
+
+ self._name = name
+
+ @property
+ def reporting_code(self):
+ """Gets the reporting_code of this PnlAccount. # noqa: E501
+
+ Reporting code (Shown if set) # noqa: E501
+
+ :return: The reporting_code of this PnlAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._reporting_code
+
+ @reporting_code.setter
+ def reporting_code(self, reporting_code):
+ """Sets the reporting_code of this PnlAccount.
+
+ Reporting code (Shown if set) # noqa: E501
+
+ :param reporting_code: The reporting_code of this PnlAccount. # noqa: E501
+ :type: str
+ """
+
+ self._reporting_code = reporting_code
+
+ @property
+ def total(self):
+ """Gets the total of this PnlAccount. # noqa: E501
+
+ Total movement on this account # noqa: E501
+
+ :return: The total of this PnlAccount. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this PnlAccount.
+
+ Total movement on this account # noqa: E501
+
+ :param total: The total of this PnlAccount. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
diff --git a/xero_python/finance/models/pnl_account_class.py b/xero_python/finance/models/pnl_account_class.py
new file mode 100644
index 00000000..9dc26d97
--- /dev/null
+++ b/xero_python/finance/models/pnl_account_class.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class PnlAccountClass(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {"total": "float", "account_types": "list[PnlAccountType]"}
+
+ attribute_map = {"total": "total", "account_types": "accountTypes"}
+
+ def __init__(self, total=None, account_types=None): # noqa: E501
+ """PnlAccountClass - a model defined in OpenAPI""" # noqa: E501
+
+ self._total = None
+ self._account_types = None
+ self.discriminator = None
+
+ if total is not None:
+ self.total = total
+ if account_types is not None:
+ self.account_types = account_types
+
+ @property
+ def total(self):
+ """Gets the total of this PnlAccountClass. # noqa: E501
+
+ Total revenue/expense value # noqa: E501
+
+ :return: The total of this PnlAccountClass. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this PnlAccountClass.
+
+ Total revenue/expense value # noqa: E501
+
+ :param total: The total of this PnlAccountClass. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
+
+ @property
+ def account_types(self):
+ """Gets the account_types of this PnlAccountClass. # noqa: E501
+
+ Contains trading income and other income for revenue section / operating expenses and direct cost for expense section if the data is available for each section. Refer to the account type element below # noqa: E501
+
+ :return: The account_types of this PnlAccountClass. # noqa: E501
+ :rtype: list[PnlAccountType]
+ """
+ return self._account_types
+
+ @account_types.setter
+ def account_types(self, account_types):
+ """Sets the account_types of this PnlAccountClass.
+
+ Contains trading income and other income for revenue section / operating expenses and direct cost for expense section if the data is available for each section. Refer to the account type element below # noqa: E501
+
+ :param account_types: The account_types of this PnlAccountClass. # noqa: E501
+ :type: list[PnlAccountType]
+ """
+
+ self._account_types = account_types
diff --git a/xero_python/finance/models/pnl_account_type.py b/xero_python/finance/models/pnl_account_type.py
new file mode 100644
index 00000000..f7f36048
--- /dev/null
+++ b/xero_python/finance/models/pnl_account_type.py
@@ -0,0 +1,118 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class PnlAccountType(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {"total": "float", "title": "str", "accounts": "list[PnlAccount]"}
+
+ attribute_map = {"total": "total", "title": "title", "accounts": "accounts"}
+
+ def __init__(self, total=None, title=None, accounts=None): # noqa: E501
+ """PnlAccountType - a model defined in OpenAPI""" # noqa: E501
+
+ self._total = None
+ self._title = None
+ self._accounts = None
+ self.discriminator = None
+
+ if total is not None:
+ self.total = total
+ if title is not None:
+ self.title = title
+ if accounts is not None:
+ self.accounts = accounts
+
+ @property
+ def total(self):
+ """Gets the total of this PnlAccountType. # noqa: E501
+
+ Total movement on this account type # noqa: E501
+
+ :return: The total of this PnlAccountType. # noqa: E501
+ :rtype: float
+ """
+ return self._total
+
+ @total.setter
+ def total(self, total):
+ """Sets the total of this PnlAccountType.
+
+ Total movement on this account type # noqa: E501
+
+ :param total: The total of this PnlAccountType. # noqa: E501
+ :type: float
+ """
+
+ self._total = total
+
+ @property
+ def title(self):
+ """Gets the title of this PnlAccountType. # noqa: E501
+
+ Name of this account type, it will be either Trading Income or Other Income for Revenue section / Direct Cost or Operating Expenses for Expense section # noqa: E501
+
+ :return: The title of this PnlAccountType. # noqa: E501
+ :rtype: str
+ """
+ return self._title
+
+ @title.setter
+ def title(self, title):
+ """Sets the title of this PnlAccountType.
+
+ Name of this account type, it will be either Trading Income or Other Income for Revenue section / Direct Cost or Operating Expenses for Expense section # noqa: E501
+
+ :param title: The title of this PnlAccountType. # noqa: E501
+ :type: str
+ """
+
+ self._title = title
+
+ @property
+ def accounts(self):
+ """Gets the accounts of this PnlAccountType. # noqa: E501
+
+ A list of the movement on each account detail during the query period. Refer to the account detail element below # noqa: E501
+
+ :return: The accounts of this PnlAccountType. # noqa: E501
+ :rtype: list[PnlAccount]
+ """
+ return self._accounts
+
+ @accounts.setter
+ def accounts(self, accounts):
+ """Sets the accounts of this PnlAccountType.
+
+ A list of the movement on each account detail during the query period. Refer to the account detail element below # noqa: E501
+
+ :param accounts: The accounts of this PnlAccountType. # noqa: E501
+ :type: list[PnlAccount]
+ """
+
+ self._accounts = accounts
diff --git a/xero_python/finance/models/practice_response.py b/xero_python/finance/models/practice_response.py
new file mode 100644
index 00000000..4b94e178
--- /dev/null
+++ b/xero_python/finance/models/practice_response.py
@@ -0,0 +1,189 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class PracticeResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "xero_partner_since": "int",
+ "tier": "str",
+ "location": "str",
+ "organisation_count": "int",
+ "staff_certified": "bool",
+ }
+
+ attribute_map = {
+ "xero_partner_since": "xeroPartnerSince",
+ "tier": "tier",
+ "location": "location",
+ "organisation_count": "organisationCount",
+ "staff_certified": "staffCertified",
+ }
+
+ def __init__(
+ self,
+ xero_partner_since=None,
+ tier=None,
+ location=None,
+ organisation_count=None,
+ staff_certified=None,
+ ): # noqa: E501
+ """PracticeResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._xero_partner_since = None
+ self._tier = None
+ self._location = None
+ self._organisation_count = None
+ self._staff_certified = None
+ self.discriminator = None
+
+ if xero_partner_since is not None:
+ self.xero_partner_since = xero_partner_since
+ if tier is not None:
+ self.tier = tier
+ if location is not None:
+ self.location = location
+ if organisation_count is not None:
+ self.organisation_count = organisation_count
+ if staff_certified is not None:
+ self.staff_certified = staff_certified
+
+ @property
+ def xero_partner_since(self):
+ """Gets the xero_partner_since of this PracticeResponse. # noqa: E501
+
+ Year of becoming a partner. # noqa: E501
+
+ :return: The xero_partner_since of this PracticeResponse. # noqa: E501
+ :rtype: int
+ """
+ return self._xero_partner_since
+
+ @xero_partner_since.setter
+ def xero_partner_since(self, xero_partner_since):
+ """Sets the xero_partner_since of this PracticeResponse.
+
+ Year of becoming a partner. # noqa: E501
+
+ :param xero_partner_since: The xero_partner_since of this PracticeResponse. # noqa: E501
+ :type: int
+ """
+
+ self._xero_partner_since = xero_partner_since
+
+ @property
+ def tier(self):
+ """Gets the tier of this PracticeResponse. # noqa: E501
+
+ Customer tier e.g. Silver # noqa: E501
+
+ :return: The tier of this PracticeResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._tier
+
+ @tier.setter
+ def tier(self, tier):
+ """Sets the tier of this PracticeResponse.
+
+ Customer tier e.g. Silver # noqa: E501
+
+ :param tier: The tier of this PracticeResponse. # noqa: E501
+ :type: str
+ """
+
+ self._tier = tier
+
+ @property
+ def location(self):
+ """Gets the location of this PracticeResponse. # noqa: E501
+
+ Country of location. # noqa: E501
+
+ :return: The location of this PracticeResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._location
+
+ @location.setter
+ def location(self, location):
+ """Sets the location of this PracticeResponse.
+
+ Country of location. # noqa: E501
+
+ :param location: The location of this PracticeResponse. # noqa: E501
+ :type: str
+ """
+
+ self._location = location
+
+ @property
+ def organisation_count(self):
+ """Gets the organisation_count of this PracticeResponse. # noqa: E501
+
+ Organisation count. # noqa: E501
+
+ :return: The organisation_count of this PracticeResponse. # noqa: E501
+ :rtype: int
+ """
+ return self._organisation_count
+
+ @organisation_count.setter
+ def organisation_count(self, organisation_count):
+ """Sets the organisation_count of this PracticeResponse.
+
+ Organisation count. # noqa: E501
+
+ :param organisation_count: The organisation_count of this PracticeResponse. # noqa: E501
+ :type: int
+ """
+
+ self._organisation_count = organisation_count
+
+ @property
+ def staff_certified(self):
+ """Gets the staff_certified of this PracticeResponse. # noqa: E501
+
+ Staff certified (true/false). # noqa: E501
+
+ :return: The staff_certified of this PracticeResponse. # noqa: E501
+ :rtype: bool
+ """
+ return self._staff_certified
+
+ @staff_certified.setter
+ def staff_certified(self, staff_certified):
+ """Sets the staff_certified of this PracticeResponse.
+
+ Staff certified (true/false). # noqa: E501
+
+ :param staff_certified: The staff_certified of this PracticeResponse. # noqa: E501
+ :type: bool
+ """
+
+ self._staff_certified = staff_certified
diff --git a/xero_python/finance/models/problem.py b/xero_python/finance/models/problem.py
new file mode 100644
index 00000000..613c1721
--- /dev/null
+++ b/xero_python/finance/models/problem.py
@@ -0,0 +1,146 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class Problem(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "type": "ProblemType",
+ "title": "str",
+ "status": "int",
+ "detail": "str",
+ }
+
+ attribute_map = {
+ "type": "type",
+ "title": "title",
+ "status": "status",
+ "detail": "detail",
+ }
+
+ def __init__(self, type=None, title=None, status=None, detail=None): # noqa: E501
+ """Problem - a model defined in OpenAPI""" # noqa: E501
+
+ self._type = None
+ self._title = None
+ self._status = None
+ self._detail = None
+ self.discriminator = None
+
+ if type is not None:
+ self.type = type
+ if title is not None:
+ self.title = title
+ if status is not None:
+ self.status = status
+ if detail is not None:
+ self.detail = detail
+
+ @property
+ def type(self):
+ """Gets the type of this Problem. # noqa: E501
+
+
+ :return: The type of this Problem. # noqa: E501
+ :rtype: ProblemType
+ """
+ return self._type
+
+ @type.setter
+ def type(self, type):
+ """Sets the type of this Problem.
+
+
+ :param type: The type of this Problem. # noqa: E501
+ :type: ProblemType
+ """
+
+ self._type = type
+
+ @property
+ def title(self):
+ """Gets the title of this Problem. # noqa: E501
+
+
+ :return: The title of this Problem. # noqa: E501
+ :rtype: str
+ """
+ return self._title
+
+ @title.setter
+ def title(self, title):
+ """Sets the title of this Problem.
+
+
+ :param title: The title of this Problem. # noqa: E501
+ :type: str
+ """
+
+ self._title = title
+
+ @property
+ def status(self):
+ """Gets the status of this Problem. # noqa: E501
+
+
+ :return: The status of this Problem. # noqa: E501
+ :rtype: int
+ """
+ return self._status
+
+ @status.setter
+ def status(self, status):
+ """Sets the status of this Problem.
+
+
+ :param status: The status of this Problem. # noqa: E501
+ :type: int
+ """
+
+ self._status = status
+
+ @property
+ def detail(self):
+ """Gets the detail of this Problem. # noqa: E501
+
+
+ :return: The detail of this Problem. # noqa: E501
+ :rtype: str
+ """
+ return self._detail
+
+ @detail.setter
+ def detail(self, detail):
+ """Sets the detail of this Problem.
+
+
+ :param detail: The detail of this Problem. # noqa: E501
+ :type: str
+ """
+
+ self._detail = detail
diff --git a/xero_python/finance/models/problem_type.py b/xero_python/finance/models/problem_type.py
new file mode 100644
index 00000000..8dc363df
--- /dev/null
+++ b/xero_python/finance/models/problem_type.py
@@ -0,0 +1,31 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from enum import Enum
+
+
+class ProblemType(Enum):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+
+ allowed enum values
+ """
+
+ NOTSET = "NotSet"
+ INVALID_REQUEST = "invalid-request"
+ INVALID_APPLICATION = "invalid-application"
+ SERVICE_UNAVAILABLE = "service-unavailable"
+ INTERNAL_ERROR = "internal-error"
diff --git a/xero_python/finance/models/profit_and_loss_response.py b/xero_python/finance/models/profit_and_loss_response.py
new file mode 100644
index 00000000..8169e792
--- /dev/null
+++ b/xero_python/finance/models/profit_and_loss_response.py
@@ -0,0 +1,185 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class ProfitAndLossResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "start_date": "date",
+ "end_date": "date",
+ "net_profit_loss": "float",
+ "revenue": "PnlAccountClass",
+ "expense": "PnlAccountClass",
+ }
+
+ attribute_map = {
+ "start_date": "startDate",
+ "end_date": "endDate",
+ "net_profit_loss": "netProfitLoss",
+ "revenue": "revenue",
+ "expense": "expense",
+ }
+
+ def __init__(
+ self,
+ start_date=None,
+ end_date=None,
+ net_profit_loss=None,
+ revenue=None,
+ expense=None,
+ ): # noqa: E501
+ """ProfitAndLossResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._start_date = None
+ self._end_date = None
+ self._net_profit_loss = None
+ self._revenue = None
+ self._expense = None
+ self.discriminator = None
+
+ if start_date is not None:
+ self.start_date = start_date
+ if end_date is not None:
+ self.end_date = end_date
+ if net_profit_loss is not None:
+ self.net_profit_loss = net_profit_loss
+ if revenue is not None:
+ self.revenue = revenue
+ if expense is not None:
+ self.expense = expense
+
+ @property
+ def start_date(self):
+ """Gets the start_date of this ProfitAndLossResponse. # noqa: E501
+
+ Start date of the report # noqa: E501
+
+ :return: The start_date of this ProfitAndLossResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._start_date
+
+ @start_date.setter
+ def start_date(self, start_date):
+ """Sets the start_date of this ProfitAndLossResponse.
+
+ Start date of the report # noqa: E501
+
+ :param start_date: The start_date of this ProfitAndLossResponse. # noqa: E501
+ :type: date
+ """
+
+ self._start_date = start_date
+
+ @property
+ def end_date(self):
+ """Gets the end_date of this ProfitAndLossResponse. # noqa: E501
+
+ End date of the report # noqa: E501
+
+ :return: The end_date of this ProfitAndLossResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._end_date
+
+ @end_date.setter
+ def end_date(self, end_date):
+ """Sets the end_date of this ProfitAndLossResponse.
+
+ End date of the report # noqa: E501
+
+ :param end_date: The end_date of this ProfitAndLossResponse. # noqa: E501
+ :type: date
+ """
+
+ self._end_date = end_date
+
+ @property
+ def net_profit_loss(self):
+ """Gets the net_profit_loss of this ProfitAndLossResponse. # noqa: E501
+
+ Net profit loss value # noqa: E501
+
+ :return: The net_profit_loss of this ProfitAndLossResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._net_profit_loss
+
+ @net_profit_loss.setter
+ def net_profit_loss(self, net_profit_loss):
+ """Sets the net_profit_loss of this ProfitAndLossResponse.
+
+ Net profit loss value # noqa: E501
+
+ :param net_profit_loss: The net_profit_loss of this ProfitAndLossResponse. # noqa: E501
+ :type: float
+ """
+
+ self._net_profit_loss = net_profit_loss
+
+ @property
+ def revenue(self):
+ """Gets the revenue of this ProfitAndLossResponse. # noqa: E501
+
+
+ :return: The revenue of this ProfitAndLossResponse. # noqa: E501
+ :rtype: PnlAccountClass
+ """
+ return self._revenue
+
+ @revenue.setter
+ def revenue(self, revenue):
+ """Sets the revenue of this ProfitAndLossResponse.
+
+
+ :param revenue: The revenue of this ProfitAndLossResponse. # noqa: E501
+ :type: PnlAccountClass
+ """
+
+ self._revenue = revenue
+
+ @property
+ def expense(self):
+ """Gets the expense of this ProfitAndLossResponse. # noqa: E501
+
+
+ :return: The expense of this ProfitAndLossResponse. # noqa: E501
+ :rtype: PnlAccountClass
+ """
+ return self._expense
+
+ @expense.setter
+ def expense(self, expense):
+ """Sets the expense of this ProfitAndLossResponse.
+
+
+ :param expense: The expense of this ProfitAndLossResponse. # noqa: E501
+ :type: PnlAccountClass
+ """
+
+ self._expense = expense
diff --git a/xero_python/finance/models/report_history_model.py b/xero_python/finance/models/report_history_model.py
new file mode 100644
index 00000000..f7ee8d1d
--- /dev/null
+++ b/xero_python/finance/models/report_history_model.py
@@ -0,0 +1,128 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class ReportHistoryModel(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "report_name": "str",
+ "report_date_text": "str",
+ "published_date_utc": "datetime",
+ }
+
+ attribute_map = {
+ "report_name": "reportName",
+ "report_date_text": "reportDateText",
+ "published_date_utc": "publishedDateUtc",
+ }
+
+ def __init__(
+ self, report_name=None, report_date_text=None, published_date_utc=None
+ ): # noqa: E501
+ """ReportHistoryModel - a model defined in OpenAPI""" # noqa: E501
+
+ self._report_name = None
+ self._report_date_text = None
+ self._published_date_utc = None
+ self.discriminator = None
+
+ if report_name is not None:
+ self.report_name = report_name
+ if report_date_text is not None:
+ self.report_date_text = report_date_text
+ if published_date_utc is not None:
+ self.published_date_utc = published_date_utc
+
+ @property
+ def report_name(self):
+ """Gets the report_name of this ReportHistoryModel. # noqa: E501
+
+ Report code or report title # noqa: E501
+
+ :return: The report_name of this ReportHistoryModel. # noqa: E501
+ :rtype: str
+ """
+ return self._report_name
+
+ @report_name.setter
+ def report_name(self, report_name):
+ """Sets the report_name of this ReportHistoryModel.
+
+ Report code or report title # noqa: E501
+
+ :param report_name: The report_name of this ReportHistoryModel. # noqa: E501
+ :type: str
+ """
+
+ self._report_name = report_name
+
+ @property
+ def report_date_text(self):
+ """Gets the report_date_text of this ReportHistoryModel. # noqa: E501
+
+ The date or date range of the report # noqa: E501
+
+ :return: The report_date_text of this ReportHistoryModel. # noqa: E501
+ :rtype: str
+ """
+ return self._report_date_text
+
+ @report_date_text.setter
+ def report_date_text(self, report_date_text):
+ """Sets the report_date_text of this ReportHistoryModel.
+
+ The date or date range of the report # noqa: E501
+
+ :param report_date_text: The report_date_text of this ReportHistoryModel. # noqa: E501
+ :type: str
+ """
+
+ self._report_date_text = report_date_text
+
+ @property
+ def published_date_utc(self):
+ """Gets the published_date_utc of this ReportHistoryModel. # noqa: E501
+
+ The system date time that the report was published # noqa: E501
+
+ :return: The published_date_utc of this ReportHistoryModel. # noqa: E501
+ :rtype: datetime
+ """
+ return self._published_date_utc
+
+ @published_date_utc.setter
+ def published_date_utc(self, published_date_utc):
+ """Sets the published_date_utc of this ReportHistoryModel.
+
+ The system date time that the report was published # noqa: E501
+
+ :param published_date_utc: The published_date_utc of this ReportHistoryModel. # noqa: E501
+ :type: datetime
+ """
+
+ self._published_date_utc = published_date_utc
diff --git a/xero_python/finance/models/report_history_response.py b/xero_python/finance/models/report_history_response.py
new file mode 100644
index 00000000..8e85616f
--- /dev/null
+++ b/xero_python/finance/models/report_history_response.py
@@ -0,0 +1,124 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class ReportHistoryResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "organisation_id": "str",
+ "end_date": "date",
+ "reports": "list[ReportHistoryModel]",
+ }
+
+ attribute_map = {
+ "organisation_id": "organisationId",
+ "end_date": "endDate",
+ "reports": "reports",
+ }
+
+ def __init__(self, organisation_id=None, end_date=None, reports=None): # noqa: E501
+ """ReportHistoryResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._organisation_id = None
+ self._end_date = None
+ self._reports = None
+ self.discriminator = None
+
+ if organisation_id is not None:
+ self.organisation_id = organisation_id
+ if end_date is not None:
+ self.end_date = end_date
+ if reports is not None:
+ self.reports = reports
+
+ @property
+ def organisation_id(self):
+ """Gets the organisation_id of this ReportHistoryResponse. # noqa: E501
+
+ The requested Organisation to which the data pertains # noqa: E501
+
+ :return: The organisation_id of this ReportHistoryResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._organisation_id
+
+ @organisation_id.setter
+ def organisation_id(self, organisation_id):
+ """Sets the organisation_id of this ReportHistoryResponse.
+
+ The requested Organisation to which the data pertains # noqa: E501
+
+ :param organisation_id: The organisation_id of this ReportHistoryResponse. # noqa: E501
+ :type: str
+ """
+
+ self._organisation_id = organisation_id
+
+ @property
+ def end_date(self):
+ """Gets the end_date of this ReportHistoryResponse. # noqa: E501
+
+ The end date of the report # noqa: E501
+
+ :return: The end_date of this ReportHistoryResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._end_date
+
+ @end_date.setter
+ def end_date(self, end_date):
+ """Sets the end_date of this ReportHistoryResponse.
+
+ The end date of the report # noqa: E501
+
+ :param end_date: The end_date of this ReportHistoryResponse. # noqa: E501
+ :type: date
+ """
+
+ self._end_date = end_date
+
+ @property
+ def reports(self):
+ """Gets the reports of this ReportHistoryResponse. # noqa: E501
+
+
+ :return: The reports of this ReportHistoryResponse. # noqa: E501
+ :rtype: list[ReportHistoryModel]
+ """
+ return self._reports
+
+ @reports.setter
+ def reports(self, reports):
+ """Sets the reports of this ReportHistoryResponse.
+
+
+ :param reports: The reports of this ReportHistoryResponse. # noqa: E501
+ :type: list[ReportHistoryModel]
+ """
+
+ self._reports = reports
diff --git a/xero_python/finance/models/statement_balance_response.py b/xero_python/finance/models/statement_balance_response.py
new file mode 100644
index 00000000..4de40c34
--- /dev/null
+++ b/xero_python/finance/models/statement_balance_response.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class StatementBalanceResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {"value": "float", "type": "str"}
+
+ attribute_map = {"value": "value", "type": "type"}
+
+ def __init__(self, value=None, type=None): # noqa: E501
+ """StatementBalanceResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._value = None
+ self._type = None
+ self.discriminator = None
+
+ if value is not None:
+ self.value = value
+ if type is not None:
+ self.type = type
+
+ @property
+ def value(self):
+ """Gets the value of this StatementBalanceResponse. # noqa: E501
+
+ Total closing balance of the account. This includes both reconciled and unreconciled bank statement lines. The closing balance will always be represented as a positive number, with it’s debit/credit status defined in the statementBalanceDebitCredit field. # noqa: E501
+
+ :return: The value of this StatementBalanceResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._value
+
+ @value.setter
+ def value(self, value):
+ """Sets the value of this StatementBalanceResponse.
+
+ Total closing balance of the account. This includes both reconciled and unreconciled bank statement lines. The closing balance will always be represented as a positive number, with it’s debit/credit status defined in the statementBalanceDebitCredit field. # noqa: E501
+
+ :param value: The value of this StatementBalanceResponse. # noqa: E501
+ :type: float
+ """
+
+ self._value = value
+
+ @property
+ def type(self):
+ """Gets the type of this StatementBalanceResponse. # noqa: E501
+
+ The DEBIT or CREDIT status of the account. Cash accounts in credit have a negative balance. # noqa: E501
+
+ :return: The type of this StatementBalanceResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._type
+
+ @type.setter
+ def type(self, type):
+ """Sets the type of this StatementBalanceResponse.
+
+ The DEBIT or CREDIT status of the account. Cash accounts in credit have a negative balance. # noqa: E501
+
+ :param type: The type of this StatementBalanceResponse. # noqa: E501
+ :type: str
+ """
+
+ self._type = type
diff --git a/xero_python/finance/models/statement_lines_response.py b/xero_python/finance/models/statement_lines_response.py
new file mode 100644
index 00000000..2d70d6c2
--- /dev/null
+++ b/xero_python/finance/models/statement_lines_response.py
@@ -0,0 +1,535 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class StatementLinesResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "unreconciled_amount_pos": "float",
+ "unreconciled_amount_neg": "float",
+ "unreconciled_lines": "int",
+ "avg_days_unreconciled_pos": "float",
+ "avg_days_unreconciled_neg": "float",
+ "earliest_unreconciled_transaction": "date",
+ "latest_unreconciled_transaction": "date",
+ "deleted_amount": "float",
+ "total_amount": "float",
+ "data_source": "DataSourceResponse",
+ "earliest_reconciled_transaction": "date",
+ "latest_reconciled_transaction": "date",
+ "reconciled_amount_pos": "float",
+ "reconciled_amount_neg": "float",
+ "reconciled_lines": "int",
+ "total_amount_pos": "float",
+ "total_amount_neg": "float",
+ }
+
+ attribute_map = {
+ "unreconciled_amount_pos": "unreconciledAmountPos",
+ "unreconciled_amount_neg": "unreconciledAmountNeg",
+ "unreconciled_lines": "unreconciledLines",
+ "avg_days_unreconciled_pos": "avgDaysUnreconciledPos",
+ "avg_days_unreconciled_neg": "avgDaysUnreconciledNeg",
+ "earliest_unreconciled_transaction": "earliestUnreconciledTransaction",
+ "latest_unreconciled_transaction": "latestUnreconciledTransaction",
+ "deleted_amount": "deletedAmount",
+ "total_amount": "totalAmount",
+ "data_source": "dataSource",
+ "earliest_reconciled_transaction": "earliestReconciledTransaction",
+ "latest_reconciled_transaction": "latestReconciledTransaction",
+ "reconciled_amount_pos": "reconciledAmountPos",
+ "reconciled_amount_neg": "reconciledAmountNeg",
+ "reconciled_lines": "reconciledLines",
+ "total_amount_pos": "totalAmountPos",
+ "total_amount_neg": "totalAmountNeg",
+ }
+
+ def __init__(
+ self,
+ unreconciled_amount_pos=None,
+ unreconciled_amount_neg=None,
+ unreconciled_lines=None,
+ avg_days_unreconciled_pos=None,
+ avg_days_unreconciled_neg=None,
+ earliest_unreconciled_transaction=None,
+ latest_unreconciled_transaction=None,
+ deleted_amount=None,
+ total_amount=None,
+ data_source=None,
+ earliest_reconciled_transaction=None,
+ latest_reconciled_transaction=None,
+ reconciled_amount_pos=None,
+ reconciled_amount_neg=None,
+ reconciled_lines=None,
+ total_amount_pos=None,
+ total_amount_neg=None,
+ ): # noqa: E501
+ """StatementLinesResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._unreconciled_amount_pos = None
+ self._unreconciled_amount_neg = None
+ self._unreconciled_lines = None
+ self._avg_days_unreconciled_pos = None
+ self._avg_days_unreconciled_neg = None
+ self._earliest_unreconciled_transaction = None
+ self._latest_unreconciled_transaction = None
+ self._deleted_amount = None
+ self._total_amount = None
+ self._data_source = None
+ self._earliest_reconciled_transaction = None
+ self._latest_reconciled_transaction = None
+ self._reconciled_amount_pos = None
+ self._reconciled_amount_neg = None
+ self._reconciled_lines = None
+ self._total_amount_pos = None
+ self._total_amount_neg = None
+ self.discriminator = None
+
+ if unreconciled_amount_pos is not None:
+ self.unreconciled_amount_pos = unreconciled_amount_pos
+ if unreconciled_amount_neg is not None:
+ self.unreconciled_amount_neg = unreconciled_amount_neg
+ if unreconciled_lines is not None:
+ self.unreconciled_lines = unreconciled_lines
+ if avg_days_unreconciled_pos is not None:
+ self.avg_days_unreconciled_pos = avg_days_unreconciled_pos
+ if avg_days_unreconciled_neg is not None:
+ self.avg_days_unreconciled_neg = avg_days_unreconciled_neg
+ if earliest_unreconciled_transaction is not None:
+ self.earliest_unreconciled_transaction = earliest_unreconciled_transaction
+ if latest_unreconciled_transaction is not None:
+ self.latest_unreconciled_transaction = latest_unreconciled_transaction
+ if deleted_amount is not None:
+ self.deleted_amount = deleted_amount
+ if total_amount is not None:
+ self.total_amount = total_amount
+ if data_source is not None:
+ self.data_source = data_source
+ if earliest_reconciled_transaction is not None:
+ self.earliest_reconciled_transaction = earliest_reconciled_transaction
+ if latest_reconciled_transaction is not None:
+ self.latest_reconciled_transaction = latest_reconciled_transaction
+ if reconciled_amount_pos is not None:
+ self.reconciled_amount_pos = reconciled_amount_pos
+ if reconciled_amount_neg is not None:
+ self.reconciled_amount_neg = reconciled_amount_neg
+ if reconciled_lines is not None:
+ self.reconciled_lines = reconciled_lines
+ if total_amount_pos is not None:
+ self.total_amount_pos = total_amount_pos
+ if total_amount_neg is not None:
+ self.total_amount_neg = total_amount_neg
+
+ @property
+ def unreconciled_amount_pos(self):
+ """Gets the unreconciled_amount_pos of this StatementLinesResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where both the reconciled flag is set to FALSE, and the amount is positive. # noqa: E501
+
+ :return: The unreconciled_amount_pos of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._unreconciled_amount_pos
+
+ @unreconciled_amount_pos.setter
+ def unreconciled_amount_pos(self, unreconciled_amount_pos):
+ """Sets the unreconciled_amount_pos of this StatementLinesResponse.
+
+ Sum of the amounts of all statement lines where both the reconciled flag is set to FALSE, and the amount is positive. # noqa: E501
+
+ :param unreconciled_amount_pos: The unreconciled_amount_pos of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._unreconciled_amount_pos = unreconciled_amount_pos
+
+ @property
+ def unreconciled_amount_neg(self):
+ """Gets the unreconciled_amount_neg of this StatementLinesResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where both the reconciled flag is set to FALSE, and the amount is negative. # noqa: E501
+
+ :return: The unreconciled_amount_neg of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._unreconciled_amount_neg
+
+ @unreconciled_amount_neg.setter
+ def unreconciled_amount_neg(self, unreconciled_amount_neg):
+ """Sets the unreconciled_amount_neg of this StatementLinesResponse.
+
+ Sum of the amounts of all statement lines where both the reconciled flag is set to FALSE, and the amount is negative. # noqa: E501
+
+ :param unreconciled_amount_neg: The unreconciled_amount_neg of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._unreconciled_amount_neg = unreconciled_amount_neg
+
+ @property
+ def unreconciled_lines(self):
+ """Gets the unreconciled_lines of this StatementLinesResponse. # noqa: E501
+
+ Count of all statement lines where the reconciled flag is set to FALSE. # noqa: E501
+
+ :return: The unreconciled_lines of this StatementLinesResponse. # noqa: E501
+ :rtype: int
+ """
+ return self._unreconciled_lines
+
+ @unreconciled_lines.setter
+ def unreconciled_lines(self, unreconciled_lines):
+ """Sets the unreconciled_lines of this StatementLinesResponse.
+
+ Count of all statement lines where the reconciled flag is set to FALSE. # noqa: E501
+
+ :param unreconciled_lines: The unreconciled_lines of this StatementLinesResponse. # noqa: E501
+ :type: int
+ """
+
+ self._unreconciled_lines = unreconciled_lines
+
+ @property
+ def avg_days_unreconciled_pos(self):
+ """Gets the avg_days_unreconciled_pos of this StatementLinesResponse. # noqa: E501
+
+ Sum-product of age of statement line in days multiplied by transaction amount, divided by the sum of transaction amount - in for those statement lines in which the reconciled flag is set to FALSE, and the amount is positive. Provides an indication of the age of unreconciled transactions. # noqa: E501
+
+ :return: The avg_days_unreconciled_pos of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._avg_days_unreconciled_pos
+
+ @avg_days_unreconciled_pos.setter
+ def avg_days_unreconciled_pos(self, avg_days_unreconciled_pos):
+ """Sets the avg_days_unreconciled_pos of this StatementLinesResponse.
+
+ Sum-product of age of statement line in days multiplied by transaction amount, divided by the sum of transaction amount - in for those statement lines in which the reconciled flag is set to FALSE, and the amount is positive. Provides an indication of the age of unreconciled transactions. # noqa: E501
+
+ :param avg_days_unreconciled_pos: The avg_days_unreconciled_pos of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._avg_days_unreconciled_pos = avg_days_unreconciled_pos
+
+ @property
+ def avg_days_unreconciled_neg(self):
+ """Gets the avg_days_unreconciled_neg of this StatementLinesResponse. # noqa: E501
+
+ Sum-product of age of statement line in days multiplied by transaction amount, divided by the sum of transaction amount - in for those statement lines in which the reconciled flag is set to FALSE, and the amount is negative. Provides an indication of the age of unreconciled transactions. # noqa: E501
+
+ :return: The avg_days_unreconciled_neg of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._avg_days_unreconciled_neg
+
+ @avg_days_unreconciled_neg.setter
+ def avg_days_unreconciled_neg(self, avg_days_unreconciled_neg):
+ """Sets the avg_days_unreconciled_neg of this StatementLinesResponse.
+
+ Sum-product of age of statement line in days multiplied by transaction amount, divided by the sum of transaction amount - in for those statement lines in which the reconciled flag is set to FALSE, and the amount is negative. Provides an indication of the age of unreconciled transactions. # noqa: E501
+
+ :param avg_days_unreconciled_neg: The avg_days_unreconciled_neg of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._avg_days_unreconciled_neg = avg_days_unreconciled_neg
+
+ @property
+ def earliest_unreconciled_transaction(self):
+ """Gets the earliest_unreconciled_transaction of this StatementLinesResponse. # noqa: E501
+
+ UTC Date which is the earliest transaction date of a statement line for which the reconciled flag is set to FALSE. This date is represented in ISO 8601 format. # noqa: E501
+
+ :return: The earliest_unreconciled_transaction of this StatementLinesResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._earliest_unreconciled_transaction
+
+ @earliest_unreconciled_transaction.setter
+ def earliest_unreconciled_transaction(self, earliest_unreconciled_transaction):
+ """Sets the earliest_unreconciled_transaction of this StatementLinesResponse.
+
+ UTC Date which is the earliest transaction date of a statement line for which the reconciled flag is set to FALSE. This date is represented in ISO 8601 format. # noqa: E501
+
+ :param earliest_unreconciled_transaction: The earliest_unreconciled_transaction of this StatementLinesResponse. # noqa: E501
+ :type: date
+ """
+
+ self._earliest_unreconciled_transaction = earliest_unreconciled_transaction
+
+ @property
+ def latest_unreconciled_transaction(self):
+ """Gets the latest_unreconciled_transaction of this StatementLinesResponse. # noqa: E501
+
+ UTC Date which is the latest transaction date of a statement line for which the reconciled flag is set to FALSE. This date is represented in ISO 8601 format. # noqa: E501
+
+ :return: The latest_unreconciled_transaction of this StatementLinesResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._latest_unreconciled_transaction
+
+ @latest_unreconciled_transaction.setter
+ def latest_unreconciled_transaction(self, latest_unreconciled_transaction):
+ """Sets the latest_unreconciled_transaction of this StatementLinesResponse.
+
+ UTC Date which is the latest transaction date of a statement line for which the reconciled flag is set to FALSE. This date is represented in ISO 8601 format. # noqa: E501
+
+ :param latest_unreconciled_transaction: The latest_unreconciled_transaction of this StatementLinesResponse. # noqa: E501
+ :type: date
+ """
+
+ self._latest_unreconciled_transaction = latest_unreconciled_transaction
+
+ @property
+ def deleted_amount(self):
+ """Gets the deleted_amount of this StatementLinesResponse. # noqa: E501
+
+ Sum of the amounts of all deleted statement lines. Transactions may be deleted due to duplication or otherwise. # noqa: E501
+
+ :return: The deleted_amount of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._deleted_amount
+
+ @deleted_amount.setter
+ def deleted_amount(self, deleted_amount):
+ """Sets the deleted_amount of this StatementLinesResponse.
+
+ Sum of the amounts of all deleted statement lines. Transactions may be deleted due to duplication or otherwise. # noqa: E501
+
+ :param deleted_amount: The deleted_amount of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._deleted_amount = deleted_amount
+
+ @property
+ def total_amount(self):
+ """Gets the total_amount of this StatementLinesResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines. This is used as a metric of comparison to the unreconciled figures above. # noqa: E501
+
+ :return: The total_amount of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._total_amount
+
+ @total_amount.setter
+ def total_amount(self, total_amount):
+ """Sets the total_amount of this StatementLinesResponse.
+
+ Sum of the amounts of all statement lines. This is used as a metric of comparison to the unreconciled figures above. # noqa: E501
+
+ :param total_amount: The total_amount of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._total_amount = total_amount
+
+ @property
+ def data_source(self):
+ """Gets the data_source of this StatementLinesResponse. # noqa: E501
+
+
+ :return: The data_source of this StatementLinesResponse. # noqa: E501
+ :rtype: DataSourceResponse
+ """
+ return self._data_source
+
+ @data_source.setter
+ def data_source(self, data_source):
+ """Sets the data_source of this StatementLinesResponse.
+
+
+ :param data_source: The data_source of this StatementLinesResponse. # noqa: E501
+ :type: DataSourceResponse
+ """
+
+ self._data_source = data_source
+
+ @property
+ def earliest_reconciled_transaction(self):
+ """Gets the earliest_reconciled_transaction of this StatementLinesResponse. # noqa: E501
+
+ UTC Date which is the earliest transaction date of a statement line for which the reconciled flag is set to TRUE. This date is represented in ISO 8601 format. # noqa: E501
+
+ :return: The earliest_reconciled_transaction of this StatementLinesResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._earliest_reconciled_transaction
+
+ @earliest_reconciled_transaction.setter
+ def earliest_reconciled_transaction(self, earliest_reconciled_transaction):
+ """Sets the earliest_reconciled_transaction of this StatementLinesResponse.
+
+ UTC Date which is the earliest transaction date of a statement line for which the reconciled flag is set to TRUE. This date is represented in ISO 8601 format. # noqa: E501
+
+ :param earliest_reconciled_transaction: The earliest_reconciled_transaction of this StatementLinesResponse. # noqa: E501
+ :type: date
+ """
+
+ self._earliest_reconciled_transaction = earliest_reconciled_transaction
+
+ @property
+ def latest_reconciled_transaction(self):
+ """Gets the latest_reconciled_transaction of this StatementLinesResponse. # noqa: E501
+
+ UTC Date which is the latest transaction date of a statement line for which the reconciled flag is set to TRUE. This date is represented in ISO 8601 format. # noqa: E501
+
+ :return: The latest_reconciled_transaction of this StatementLinesResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._latest_reconciled_transaction
+
+ @latest_reconciled_transaction.setter
+ def latest_reconciled_transaction(self, latest_reconciled_transaction):
+ """Sets the latest_reconciled_transaction of this StatementLinesResponse.
+
+ UTC Date which is the latest transaction date of a statement line for which the reconciled flag is set to TRUE. This date is represented in ISO 8601 format. # noqa: E501
+
+ :param latest_reconciled_transaction: The latest_reconciled_transaction of this StatementLinesResponse. # noqa: E501
+ :type: date
+ """
+
+ self._latest_reconciled_transaction = latest_reconciled_transaction
+
+ @property
+ def reconciled_amount_pos(self):
+ """Gets the reconciled_amount_pos of this StatementLinesResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where both the reconciled flag is set to TRUE, and the amount is positive. # noqa: E501
+
+ :return: The reconciled_amount_pos of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._reconciled_amount_pos
+
+ @reconciled_amount_pos.setter
+ def reconciled_amount_pos(self, reconciled_amount_pos):
+ """Sets the reconciled_amount_pos of this StatementLinesResponse.
+
+ Sum of the amounts of all statement lines where both the reconciled flag is set to TRUE, and the amount is positive. # noqa: E501
+
+ :param reconciled_amount_pos: The reconciled_amount_pos of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._reconciled_amount_pos = reconciled_amount_pos
+
+ @property
+ def reconciled_amount_neg(self):
+ """Gets the reconciled_amount_neg of this StatementLinesResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where both the reconciled flag is set to TRUE, and the amount is negative. # noqa: E501
+
+ :return: The reconciled_amount_neg of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._reconciled_amount_neg
+
+ @reconciled_amount_neg.setter
+ def reconciled_amount_neg(self, reconciled_amount_neg):
+ """Sets the reconciled_amount_neg of this StatementLinesResponse.
+
+ Sum of the amounts of all statement lines where both the reconciled flag is set to TRUE, and the amount is negative. # noqa: E501
+
+ :param reconciled_amount_neg: The reconciled_amount_neg of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._reconciled_amount_neg = reconciled_amount_neg
+
+ @property
+ def reconciled_lines(self):
+ """Gets the reconciled_lines of this StatementLinesResponse. # noqa: E501
+
+ Count of all statement lines where the reconciled flag is set to TRUE # noqa: E501
+
+ :return: The reconciled_lines of this StatementLinesResponse. # noqa: E501
+ :rtype: int
+ """
+ return self._reconciled_lines
+
+ @reconciled_lines.setter
+ def reconciled_lines(self, reconciled_lines):
+ """Sets the reconciled_lines of this StatementLinesResponse.
+
+ Count of all statement lines where the reconciled flag is set to TRUE # noqa: E501
+
+ :param reconciled_lines: The reconciled_lines of this StatementLinesResponse. # noqa: E501
+ :type: int
+ """
+
+ self._reconciled_lines = reconciled_lines
+
+ @property
+ def total_amount_pos(self):
+ """Gets the total_amount_pos of this StatementLinesResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the amount is positive # noqa: E501
+
+ :return: The total_amount_pos of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._total_amount_pos
+
+ @total_amount_pos.setter
+ def total_amount_pos(self, total_amount_pos):
+ """Sets the total_amount_pos of this StatementLinesResponse.
+
+ Sum of the amounts of all statement lines where the amount is positive # noqa: E501
+
+ :param total_amount_pos: The total_amount_pos of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._total_amount_pos = total_amount_pos
+
+ @property
+ def total_amount_neg(self):
+ """Gets the total_amount_neg of this StatementLinesResponse. # noqa: E501
+
+ Sum of the amounts of all statement lines where the amount is negative. # noqa: E501
+
+ :return: The total_amount_neg of this StatementLinesResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._total_amount_neg
+
+ @total_amount_neg.setter
+ def total_amount_neg(self, total_amount_neg):
+ """Sets the total_amount_neg of this StatementLinesResponse.
+
+ Sum of the amounts of all statement lines where the amount is negative. # noqa: E501
+
+ :param total_amount_neg: The total_amount_neg of this StatementLinesResponse. # noqa: E501
+ :type: float
+ """
+
+ self._total_amount_neg = total_amount_neg
diff --git a/xero_python/finance/models/total_detail.py b/xero_python/finance/models/total_detail.py
new file mode 100644
index 00000000..b003f826
--- /dev/null
+++ b/xero_python/finance/models/total_detail.py
@@ -0,0 +1,128 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class TotalDetail(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "total_paid": "float",
+ "total_outstanding": "float",
+ "total_credited_un_applied": "float",
+ }
+
+ attribute_map = {
+ "total_paid": "totalPaid",
+ "total_outstanding": "totalOutstanding",
+ "total_credited_un_applied": "totalCreditedUnApplied",
+ }
+
+ def __init__(
+ self, total_paid=None, total_outstanding=None, total_credited_un_applied=None
+ ): # noqa: E501
+ """TotalDetail - a model defined in OpenAPI""" # noqa: E501
+
+ self._total_paid = None
+ self._total_outstanding = None
+ self._total_credited_un_applied = None
+ self.discriminator = None
+
+ if total_paid is not None:
+ self.total_paid = total_paid
+ if total_outstanding is not None:
+ self.total_outstanding = total_outstanding
+ if total_credited_un_applied is not None:
+ self.total_credited_un_applied = total_credited_un_applied
+
+ @property
+ def total_paid(self):
+ """Gets the total_paid of this TotalDetail. # noqa: E501
+
+ Total paid invoice and cash value within the period. # noqa: E501
+
+ :return: The total_paid of this TotalDetail. # noqa: E501
+ :rtype: float
+ """
+ return self._total_paid
+
+ @total_paid.setter
+ def total_paid(self, total_paid):
+ """Sets the total_paid of this TotalDetail.
+
+ Total paid invoice and cash value within the period. # noqa: E501
+
+ :param total_paid: The total_paid of this TotalDetail. # noqa: E501
+ :type: float
+ """
+
+ self._total_paid = total_paid
+
+ @property
+ def total_outstanding(self):
+ """Gets the total_outstanding of this TotalDetail. # noqa: E501
+
+ Total outstanding invoice value within the period. # noqa: E501
+
+ :return: The total_outstanding of this TotalDetail. # noqa: E501
+ :rtype: float
+ """
+ return self._total_outstanding
+
+ @total_outstanding.setter
+ def total_outstanding(self, total_outstanding):
+ """Sets the total_outstanding of this TotalDetail.
+
+ Total outstanding invoice value within the period. # noqa: E501
+
+ :param total_outstanding: The total_outstanding of this TotalDetail. # noqa: E501
+ :type: float
+ """
+
+ self._total_outstanding = total_outstanding
+
+ @property
+ def total_credited_un_applied(self):
+ """Gets the total_credited_un_applied of this TotalDetail. # noqa: E501
+
+ Total unapplied credited value within the period. # noqa: E501
+
+ :return: The total_credited_un_applied of this TotalDetail. # noqa: E501
+ :rtype: float
+ """
+ return self._total_credited_un_applied
+
+ @total_credited_un_applied.setter
+ def total_credited_un_applied(self, total_credited_un_applied):
+ """Sets the total_credited_un_applied of this TotalDetail.
+
+ Total unapplied credited value within the period. # noqa: E501
+
+ :param total_credited_un_applied: The total_credited_un_applied of this TotalDetail. # noqa: E501
+ :type: float
+ """
+
+ self._total_credited_un_applied = total_credited_un_applied
diff --git a/xero_python/finance/models/total_other.py b/xero_python/finance/models/total_other.py
new file mode 100644
index 00000000..6e176554
--- /dev/null
+++ b/xero_python/finance/models/total_other.py
@@ -0,0 +1,128 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class TotalOther(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "total_outstanding_aged": "float",
+ "total_voided": "float",
+ "total_credited": "float",
+ }
+
+ attribute_map = {
+ "total_outstanding_aged": "totalOutstandingAged",
+ "total_voided": "totalVoided",
+ "total_credited": "totalCredited",
+ }
+
+ def __init__(
+ self, total_outstanding_aged=None, total_voided=None, total_credited=None
+ ): # noqa: E501
+ """TotalOther - a model defined in OpenAPI""" # noqa: E501
+
+ self._total_outstanding_aged = None
+ self._total_voided = None
+ self._total_credited = None
+ self.discriminator = None
+
+ if total_outstanding_aged is not None:
+ self.total_outstanding_aged = total_outstanding_aged
+ if total_voided is not None:
+ self.total_voided = total_voided
+ if total_credited is not None:
+ self.total_credited = total_credited
+
+ @property
+ def total_outstanding_aged(self):
+ """Gets the total_outstanding_aged of this TotalOther. # noqa: E501
+
+ Total outstanding invoice value within the period where the invoices are more than 90 days old # noqa: E501
+
+ :return: The total_outstanding_aged of this TotalOther. # noqa: E501
+ :rtype: float
+ """
+ return self._total_outstanding_aged
+
+ @total_outstanding_aged.setter
+ def total_outstanding_aged(self, total_outstanding_aged):
+ """Sets the total_outstanding_aged of this TotalOther.
+
+ Total outstanding invoice value within the period where the invoices are more than 90 days old # noqa: E501
+
+ :param total_outstanding_aged: The total_outstanding_aged of this TotalOther. # noqa: E501
+ :type: float
+ """
+
+ self._total_outstanding_aged = total_outstanding_aged
+
+ @property
+ def total_voided(self):
+ """Gets the total_voided of this TotalOther. # noqa: E501
+
+ Total voided value. # noqa: E501
+
+ :return: The total_voided of this TotalOther. # noqa: E501
+ :rtype: float
+ """
+ return self._total_voided
+
+ @total_voided.setter
+ def total_voided(self, total_voided):
+ """Sets the total_voided of this TotalOther.
+
+ Total voided value. # noqa: E501
+
+ :param total_voided: The total_voided of this TotalOther. # noqa: E501
+ :type: float
+ """
+
+ self._total_voided = total_voided
+
+ @property
+ def total_credited(self):
+ """Gets the total_credited of this TotalOther. # noqa: E501
+
+ Total credited value. # noqa: E501
+
+ :return: The total_credited of this TotalOther. # noqa: E501
+ :rtype: float
+ """
+ return self._total_credited
+
+ @total_credited.setter
+ def total_credited(self, total_credited):
+ """Sets the total_credited of this TotalOther.
+
+ Total credited value. # noqa: E501
+
+ :param total_credited: The total_credited of this TotalOther. # noqa: E501
+ :type: float
+ """
+
+ self._total_credited = total_credited
diff --git a/xero_python/finance/models/trial_balance_account.py b/xero_python/finance/models/trial_balance_account.py
new file mode 100644
index 00000000..c88cf999
--- /dev/null
+++ b/xero_python/finance/models/trial_balance_account.py
@@ -0,0 +1,330 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class TrialBalanceAccount(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "account_id": "str",
+ "account_type": "str",
+ "account_code": "str",
+ "account_class": "str",
+ "status": "str",
+ "reporting_code": "str",
+ "account_name": "str",
+ "balance": "TrialBalanceEntry",
+ "signed_balance": "float",
+ "account_movement": "TrialBalanceMovement",
+ }
+
+ attribute_map = {
+ "account_id": "accountId",
+ "account_type": "accountType",
+ "account_code": "accountCode",
+ "account_class": "accountClass",
+ "status": "status",
+ "reporting_code": "reportingCode",
+ "account_name": "accountName",
+ "balance": "balance",
+ "signed_balance": "signedBalance",
+ "account_movement": "accountMovement",
+ }
+
+ def __init__(
+ self,
+ account_id=None,
+ account_type=None,
+ account_code=None,
+ account_class=None,
+ status=None,
+ reporting_code=None,
+ account_name=None,
+ balance=None,
+ signed_balance=None,
+ account_movement=None,
+ ): # noqa: E501
+ """TrialBalanceAccount - a model defined in OpenAPI""" # noqa: E501
+
+ self._account_id = None
+ self._account_type = None
+ self._account_code = None
+ self._account_class = None
+ self._status = None
+ self._reporting_code = None
+ self._account_name = None
+ self._balance = None
+ self._signed_balance = None
+ self._account_movement = None
+ self.discriminator = None
+
+ if account_id is not None:
+ self.account_id = account_id
+ if account_type is not None:
+ self.account_type = account_type
+ if account_code is not None:
+ self.account_code = account_code
+ if account_class is not None:
+ self.account_class = account_class
+ if status is not None:
+ self.status = status
+ if reporting_code is not None:
+ self.reporting_code = reporting_code
+ if account_name is not None:
+ self.account_name = account_name
+ if balance is not None:
+ self.balance = balance
+ if signed_balance is not None:
+ self.signed_balance = signed_balance
+ if account_movement is not None:
+ self.account_movement = account_movement
+
+ @property
+ def account_id(self):
+ """Gets the account_id of this TrialBalanceAccount. # noqa: E501
+
+ ID of the account # noqa: E501
+
+ :return: The account_id of this TrialBalanceAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_id
+
+ @account_id.setter
+ def account_id(self, account_id):
+ """Sets the account_id of this TrialBalanceAccount.
+
+ ID of the account # noqa: E501
+
+ :param account_id: The account_id of this TrialBalanceAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_id = account_id
+
+ @property
+ def account_type(self):
+ """Gets the account_type of this TrialBalanceAccount. # noqa: E501
+
+ The type of the account. See Account Types # noqa: E501
+
+ :return: The account_type of this TrialBalanceAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_type
+
+ @account_type.setter
+ def account_type(self, account_type):
+ """Sets the account_type of this TrialBalanceAccount.
+
+ The type of the account. See Account Types # noqa: E501
+
+ :param account_type: The account_type of this TrialBalanceAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_type = account_type
+
+ @property
+ def account_code(self):
+ """Gets the account_code of this TrialBalanceAccount. # noqa: E501
+
+ Customer defined alpha numeric account code e.g 200 or SALES # noqa: E501
+
+ :return: The account_code of this TrialBalanceAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_code
+
+ @account_code.setter
+ def account_code(self, account_code):
+ """Sets the account_code of this TrialBalanceAccount.
+
+ Customer defined alpha numeric account code e.g 200 or SALES # noqa: E501
+
+ :param account_code: The account_code of this TrialBalanceAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_code = account_code
+
+ @property
+ def account_class(self):
+ """Gets the account_class of this TrialBalanceAccount. # noqa: E501
+
+ The class of the account. See Account Class Types # noqa: E501
+
+ :return: The account_class of this TrialBalanceAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_class
+
+ @account_class.setter
+ def account_class(self, account_class):
+ """Sets the account_class of this TrialBalanceAccount.
+
+ The class of the account. See Account Class Types # noqa: E501
+
+ :param account_class: The account_class of this TrialBalanceAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_class = account_class
+
+ @property
+ def status(self):
+ """Gets the status of this TrialBalanceAccount. # noqa: E501
+
+ Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes # noqa: E501
+
+ :return: The status of this TrialBalanceAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._status
+
+ @status.setter
+ def status(self, status):
+ """Sets the status of this TrialBalanceAccount.
+
+ Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes # noqa: E501
+
+ :param status: The status of this TrialBalanceAccount. # noqa: E501
+ :type: str
+ """
+
+ self._status = status
+
+ @property
+ def reporting_code(self):
+ """Gets the reporting_code of this TrialBalanceAccount. # noqa: E501
+
+ Reporting code (Shown if set) # noqa: E501
+
+ :return: The reporting_code of this TrialBalanceAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._reporting_code
+
+ @reporting_code.setter
+ def reporting_code(self, reporting_code):
+ """Sets the reporting_code of this TrialBalanceAccount.
+
+ Reporting code (Shown if set) # noqa: E501
+
+ :param reporting_code: The reporting_code of this TrialBalanceAccount. # noqa: E501
+ :type: str
+ """
+
+ self._reporting_code = reporting_code
+
+ @property
+ def account_name(self):
+ """Gets the account_name of this TrialBalanceAccount. # noqa: E501
+
+ Name of the account # noqa: E501
+
+ :return: The account_name of this TrialBalanceAccount. # noqa: E501
+ :rtype: str
+ """
+ return self._account_name
+
+ @account_name.setter
+ def account_name(self, account_name):
+ """Sets the account_name of this TrialBalanceAccount.
+
+ Name of the account # noqa: E501
+
+ :param account_name: The account_name of this TrialBalanceAccount. # noqa: E501
+ :type: str
+ """
+
+ self._account_name = account_name
+
+ @property
+ def balance(self):
+ """Gets the balance of this TrialBalanceAccount. # noqa: E501
+
+
+ :return: The balance of this TrialBalanceAccount. # noqa: E501
+ :rtype: TrialBalanceEntry
+ """
+ return self._balance
+
+ @balance.setter
+ def balance(self, balance):
+ """Sets the balance of this TrialBalanceAccount.
+
+
+ :param balance: The balance of this TrialBalanceAccount. # noqa: E501
+ :type: TrialBalanceEntry
+ """
+
+ self._balance = balance
+
+ @property
+ def signed_balance(self):
+ """Gets the signed_balance of this TrialBalanceAccount. # noqa: E501
+
+ Value of balance. Expense and Asset accounts code debits as positive. Revenue, Liability, and Equity accounts code debits as negative # noqa: E501
+
+ :return: The signed_balance of this TrialBalanceAccount. # noqa: E501
+ :rtype: float
+ """
+ return self._signed_balance
+
+ @signed_balance.setter
+ def signed_balance(self, signed_balance):
+ """Sets the signed_balance of this TrialBalanceAccount.
+
+ Value of balance. Expense and Asset accounts code debits as positive. Revenue, Liability, and Equity accounts code debits as negative # noqa: E501
+
+ :param signed_balance: The signed_balance of this TrialBalanceAccount. # noqa: E501
+ :type: float
+ """
+
+ self._signed_balance = signed_balance
+
+ @property
+ def account_movement(self):
+ """Gets the account_movement of this TrialBalanceAccount. # noqa: E501
+
+
+ :return: The account_movement of this TrialBalanceAccount. # noqa: E501
+ :rtype: TrialBalanceMovement
+ """
+ return self._account_movement
+
+ @account_movement.setter
+ def account_movement(self, account_movement):
+ """Sets the account_movement of this TrialBalanceAccount.
+
+
+ :param account_movement: The account_movement of this TrialBalanceAccount. # noqa: E501
+ :type: TrialBalanceMovement
+ """
+
+ self._account_movement = account_movement
diff --git a/xero_python/finance/models/trial_balance_entry.py b/xero_python/finance/models/trial_balance_entry.py
new file mode 100644
index 00000000..8efee179
--- /dev/null
+++ b/xero_python/finance/models/trial_balance_entry.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class TrialBalanceEntry(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {"value": "float", "entry_type": "str"}
+
+ attribute_map = {"value": "value", "entry_type": "entryType"}
+
+ def __init__(self, value=None, entry_type=None): # noqa: E501
+ """TrialBalanceEntry - a model defined in OpenAPI""" # noqa: E501
+
+ self._value = None
+ self._entry_type = None
+ self.discriminator = None
+
+ if value is not None:
+ self.value = value
+ if entry_type is not None:
+ self.entry_type = entry_type
+
+ @property
+ def value(self):
+ """Gets the value of this TrialBalanceEntry. # noqa: E501
+
+ Net movement or net balance in the account # noqa: E501
+
+ :return: The value of this TrialBalanceEntry. # noqa: E501
+ :rtype: float
+ """
+ return self._value
+
+ @value.setter
+ def value(self, value):
+ """Sets the value of this TrialBalanceEntry.
+
+ Net movement or net balance in the account # noqa: E501
+
+ :param value: The value of this TrialBalanceEntry. # noqa: E501
+ :type: float
+ """
+
+ self._value = value
+
+ @property
+ def entry_type(self):
+ """Gets the entry_type of this TrialBalanceEntry. # noqa: E501
+
+ Sign (Debit/Credit) of the movement of balance in the account # noqa: E501
+
+ :return: The entry_type of this TrialBalanceEntry. # noqa: E501
+ :rtype: str
+ """
+ return self._entry_type
+
+ @entry_type.setter
+ def entry_type(self, entry_type):
+ """Sets the entry_type of this TrialBalanceEntry.
+
+ Sign (Debit/Credit) of the movement of balance in the account # noqa: E501
+
+ :param entry_type: The entry_type of this TrialBalanceEntry. # noqa: E501
+ :type: str
+ """
+
+ self._entry_type = entry_type
diff --git a/xero_python/finance/models/trial_balance_movement.py b/xero_python/finance/models/trial_balance_movement.py
new file mode 100644
index 00000000..36ac1577
--- /dev/null
+++ b/xero_python/finance/models/trial_balance_movement.py
@@ -0,0 +1,154 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class TrialBalanceMovement(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "debits": "float",
+ "credits": "float",
+ "movement": "TrialBalanceEntry",
+ "signed_movement": "float",
+ }
+
+ attribute_map = {
+ "debits": "debits",
+ "credits": "credits",
+ "movement": "movement",
+ "signed_movement": "signedMovement",
+ }
+
+ def __init__(
+ self, debits=None, credits=None, movement=None, signed_movement=None
+ ): # noqa: E501
+ """TrialBalanceMovement - a model defined in OpenAPI""" # noqa: E501
+
+ self._debits = None
+ self._credits = None
+ self._movement = None
+ self._signed_movement = None
+ self.discriminator = None
+
+ if debits is not None:
+ self.debits = debits
+ if credits is not None:
+ self.credits = credits
+ if movement is not None:
+ self.movement = movement
+ if signed_movement is not None:
+ self.signed_movement = signed_movement
+
+ @property
+ def debits(self):
+ """Gets the debits of this TrialBalanceMovement. # noqa: E501
+
+ Debit amount # noqa: E501
+
+ :return: The debits of this TrialBalanceMovement. # noqa: E501
+ :rtype: float
+ """
+ return self._debits
+
+ @debits.setter
+ def debits(self, debits):
+ """Sets the debits of this TrialBalanceMovement.
+
+ Debit amount # noqa: E501
+
+ :param debits: The debits of this TrialBalanceMovement. # noqa: E501
+ :type: float
+ """
+
+ self._debits = debits
+
+ @property
+ def credits(self):
+ """Gets the credits of this TrialBalanceMovement. # noqa: E501
+
+ Credit amount # noqa: E501
+
+ :return: The credits of this TrialBalanceMovement. # noqa: E501
+ :rtype: float
+ """
+ return self._credits
+
+ @credits.setter
+ def credits(self, credits):
+ """Sets the credits of this TrialBalanceMovement.
+
+ Credit amount # noqa: E501
+
+ :param credits: The credits of this TrialBalanceMovement. # noqa: E501
+ :type: float
+ """
+
+ self._credits = credits
+
+ @property
+ def movement(self):
+ """Gets the movement of this TrialBalanceMovement. # noqa: E501
+
+
+ :return: The movement of this TrialBalanceMovement. # noqa: E501
+ :rtype: TrialBalanceEntry
+ """
+ return self._movement
+
+ @movement.setter
+ def movement(self, movement):
+ """Sets the movement of this TrialBalanceMovement.
+
+
+ :param movement: The movement of this TrialBalanceMovement. # noqa: E501
+ :type: TrialBalanceEntry
+ """
+
+ self._movement = movement
+
+ @property
+ def signed_movement(self):
+ """Gets the signed_movement of this TrialBalanceMovement. # noqa: E501
+
+ Value of movement. Expense and Asset accounts code debits as positive. Revenue, Liability, and Equity accounts code debits as negative # noqa: E501
+
+ :return: The signed_movement of this TrialBalanceMovement. # noqa: E501
+ :rtype: float
+ """
+ return self._signed_movement
+
+ @signed_movement.setter
+ def signed_movement(self, signed_movement):
+ """Sets the signed_movement of this TrialBalanceMovement.
+
+ Value of movement. Expense and Asset accounts code debits as positive. Revenue, Liability, and Equity accounts code debits as negative # noqa: E501
+
+ :param signed_movement: The signed_movement of this TrialBalanceMovement. # noqa: E501
+ :type: float
+ """
+
+ self._signed_movement = signed_movement
diff --git a/xero_python/finance/models/trial_balance_response.py b/xero_python/finance/models/trial_balance_response.py
new file mode 100644
index 00000000..9dd4f301
--- /dev/null
+++ b/xero_python/finance/models/trial_balance_response.py
@@ -0,0 +1,126 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class TrialBalanceResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "start_date": "date",
+ "end_date": "date",
+ "accounts": "list[TrialBalanceAccount]",
+ }
+
+ attribute_map = {
+ "start_date": "startDate",
+ "end_date": "endDate",
+ "accounts": "accounts",
+ }
+
+ def __init__(self, start_date=None, end_date=None, accounts=None): # noqa: E501
+ """TrialBalanceResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._start_date = None
+ self._end_date = None
+ self._accounts = None
+ self.discriminator = None
+
+ if start_date is not None:
+ self.start_date = start_date
+ if end_date is not None:
+ self.end_date = end_date
+ if accounts is not None:
+ self.accounts = accounts
+
+ @property
+ def start_date(self):
+ """Gets the start_date of this TrialBalanceResponse. # noqa: E501
+
+ Start date of the report # noqa: E501
+
+ :return: The start_date of this TrialBalanceResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._start_date
+
+ @start_date.setter
+ def start_date(self, start_date):
+ """Sets the start_date of this TrialBalanceResponse.
+
+ Start date of the report # noqa: E501
+
+ :param start_date: The start_date of this TrialBalanceResponse. # noqa: E501
+ :type: date
+ """
+
+ self._start_date = start_date
+
+ @property
+ def end_date(self):
+ """Gets the end_date of this TrialBalanceResponse. # noqa: E501
+
+ End date of the report # noqa: E501
+
+ :return: The end_date of this TrialBalanceResponse. # noqa: E501
+ :rtype: date
+ """
+ return self._end_date
+
+ @end_date.setter
+ def end_date(self, end_date):
+ """Sets the end_date of this TrialBalanceResponse.
+
+ End date of the report # noqa: E501
+
+ :param end_date: The end_date of this TrialBalanceResponse. # noqa: E501
+ :type: date
+ """
+
+ self._end_date = end_date
+
+ @property
+ def accounts(self):
+ """Gets the accounts of this TrialBalanceResponse. # noqa: E501
+
+ Refer to the accounts section below # noqa: E501
+
+ :return: The accounts of this TrialBalanceResponse. # noqa: E501
+ :rtype: list[TrialBalanceAccount]
+ """
+ return self._accounts
+
+ @accounts.setter
+ def accounts(self, accounts):
+ """Sets the accounts of this TrialBalanceResponse.
+
+ Refer to the accounts section below # noqa: E501
+
+ :param accounts: The accounts of this TrialBalanceResponse. # noqa: E501
+ :type: list[TrialBalanceAccount]
+ """
+
+ self._accounts = accounts
diff --git a/xero_python/finance/models/user_activities_response.py b/xero_python/finance/models/user_activities_response.py
new file mode 100644
index 00000000..8a98e4a1
--- /dev/null
+++ b/xero_python/finance/models/user_activities_response.py
@@ -0,0 +1,124 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class UserActivitiesResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "organisation_id": "str",
+ "data_month": "str",
+ "users": "list[UserResponse]",
+ }
+
+ attribute_map = {
+ "organisation_id": "organisationId",
+ "data_month": "dataMonth",
+ "users": "users",
+ }
+
+ def __init__(self, organisation_id=None, data_month=None, users=None): # noqa: E501
+ """UserActivitiesResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._organisation_id = None
+ self._data_month = None
+ self._users = None
+ self.discriminator = None
+
+ if organisation_id is not None:
+ self.organisation_id = organisation_id
+ if data_month is not None:
+ self.data_month = data_month
+ if users is not None:
+ self.users = users
+
+ @property
+ def organisation_id(self):
+ """Gets the organisation_id of this UserActivitiesResponse. # noqa: E501
+
+ The requested Organisation to which the data pertains # noqa: E501
+
+ :return: The organisation_id of this UserActivitiesResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._organisation_id
+
+ @organisation_id.setter
+ def organisation_id(self, organisation_id):
+ """Sets the organisation_id of this UserActivitiesResponse.
+
+ The requested Organisation to which the data pertains # noqa: E501
+
+ :param organisation_id: The organisation_id of this UserActivitiesResponse. # noqa: E501
+ :type: str
+ """
+
+ self._organisation_id = organisation_id
+
+ @property
+ def data_month(self):
+ """Gets the data_month of this UserActivitiesResponse. # noqa: E501
+
+ The month of the report # noqa: E501
+
+ :return: The data_month of this UserActivitiesResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._data_month
+
+ @data_month.setter
+ def data_month(self, data_month):
+ """Sets the data_month of this UserActivitiesResponse.
+
+ The month of the report # noqa: E501
+
+ :param data_month: The data_month of this UserActivitiesResponse. # noqa: E501
+ :type: str
+ """
+
+ self._data_month = data_month
+
+ @property
+ def users(self):
+ """Gets the users of this UserActivitiesResponse. # noqa: E501
+
+
+ :return: The users of this UserActivitiesResponse. # noqa: E501
+ :rtype: list[UserResponse]
+ """
+ return self._users
+
+ @users.setter
+ def users(self, users):
+ """Sets the users of this UserActivitiesResponse.
+
+
+ :param users: The users of this UserActivitiesResponse. # noqa: E501
+ :type: list[UserResponse]
+ """
+
+ self._users = users
diff --git a/xero_python/finance/models/user_response.py b/xero_python/finance/models/user_response.py
new file mode 100644
index 00000000..517f2cf1
--- /dev/null
+++ b/xero_python/finance/models/user_response.py
@@ -0,0 +1,388 @@
+# coding: utf-8
+
+"""
+ Xero Finance API
+
+ The Finance API is a collection of endpoints which customers can use in the course of a loan application, which may assist lenders to gain the confidence they need to provide capital. # noqa: E501
+
+ Contact: api@xero.com
+ Generated by: https://openapi-generator.tech
+"""
+
+
+import re # noqa: F401
+
+from xero_python.models import BaseModel
+
+
+class UserResponse(BaseModel):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ """
+ Attributes:
+ openapi_types (dict): The key is attribute name
+ and the value is attribute type.
+ attribute_map (dict): The key is attribute name
+ and the value is json key in definition.
+ """
+ openapi_types = {
+ "user_id": "str",
+ "user_created_date_utc": "datetime",
+ "last_login_date_utc": "datetime",
+ "is_external_partner": "bool",
+ "has_accountant_role": "bool",
+ "month_period": "str",
+ "number_of_logins": "int",
+ "number_of_documents_created": "int",
+ "net_value_documents_created": "float",
+ "absolute_value_documents_created": "float",
+ "attached_practices": "list[PracticeResponse]",
+ "history_records": "list[HistoryRecordResponse]",
+ }
+
+ attribute_map = {
+ "user_id": "userId",
+ "user_created_date_utc": "userCreatedDateUtc",
+ "last_login_date_utc": "lastLoginDateUtc",
+ "is_external_partner": "isExternalPartner",
+ "has_accountant_role": "hasAccountantRole",
+ "month_period": "monthPeriod",
+ "number_of_logins": "numberOfLogins",
+ "number_of_documents_created": "numberOfDocumentsCreated",
+ "net_value_documents_created": "netValueDocumentsCreated",
+ "absolute_value_documents_created": "absoluteValueDocumentsCreated",
+ "attached_practices": "attachedPractices",
+ "history_records": "historyRecords",
+ }
+
+ def __init__(
+ self,
+ user_id=None,
+ user_created_date_utc=None,
+ last_login_date_utc=None,
+ is_external_partner=None,
+ has_accountant_role=None,
+ month_period=None,
+ number_of_logins=None,
+ number_of_documents_created=None,
+ net_value_documents_created=None,
+ absolute_value_documents_created=None,
+ attached_practices=None,
+ history_records=None,
+ ): # noqa: E501
+ """UserResponse - a model defined in OpenAPI""" # noqa: E501
+
+ self._user_id = None
+ self._user_created_date_utc = None
+ self._last_login_date_utc = None
+ self._is_external_partner = None
+ self._has_accountant_role = None
+ self._month_period = None
+ self._number_of_logins = None
+ self._number_of_documents_created = None
+ self._net_value_documents_created = None
+ self._absolute_value_documents_created = None
+ self._attached_practices = None
+ self._history_records = None
+ self.discriminator = None
+
+ if user_id is not None:
+ self.user_id = user_id
+ if user_created_date_utc is not None:
+ self.user_created_date_utc = user_created_date_utc
+ if last_login_date_utc is not None:
+ self.last_login_date_utc = last_login_date_utc
+ if is_external_partner is not None:
+ self.is_external_partner = is_external_partner
+ if has_accountant_role is not None:
+ self.has_accountant_role = has_accountant_role
+ if month_period is not None:
+ self.month_period = month_period
+ if number_of_logins is not None:
+ self.number_of_logins = number_of_logins
+ if number_of_documents_created is not None:
+ self.number_of_documents_created = number_of_documents_created
+ if net_value_documents_created is not None:
+ self.net_value_documents_created = net_value_documents_created
+ if absolute_value_documents_created is not None:
+ self.absolute_value_documents_created = absolute_value_documents_created
+ if attached_practices is not None:
+ self.attached_practices = attached_practices
+ if history_records is not None:
+ self.history_records = history_records
+
+ @property
+ def user_id(self):
+ """Gets the user_id of this UserResponse. # noqa: E501
+
+ The Xero identifier for the user # noqa: E501
+
+ :return: The user_id of this UserResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._user_id
+
+ @user_id.setter
+ def user_id(self, user_id):
+ """Sets the user_id of this UserResponse.
+
+ The Xero identifier for the user # noqa: E501
+
+ :param user_id: The user_id of this UserResponse. # noqa: E501
+ :type: str
+ """
+
+ self._user_id = user_id
+
+ @property
+ def user_created_date_utc(self):
+ """Gets the user_created_date_utc of this UserResponse. # noqa: E501
+
+ Timestamp of user creation. # noqa: E501
+
+ :return: The user_created_date_utc of this UserResponse. # noqa: E501
+ :rtype: datetime
+ """
+ return self._user_created_date_utc
+
+ @user_created_date_utc.setter
+ def user_created_date_utc(self, user_created_date_utc):
+ """Sets the user_created_date_utc of this UserResponse.
+
+ Timestamp of user creation. # noqa: E501
+
+ :param user_created_date_utc: The user_created_date_utc of this UserResponse. # noqa: E501
+ :type: datetime
+ """
+
+ self._user_created_date_utc = user_created_date_utc
+
+ @property
+ def last_login_date_utc(self):
+ """Gets the last_login_date_utc of this UserResponse. # noqa: E501
+
+ Timestamp of user last login # noqa: E501
+
+ :return: The last_login_date_utc of this UserResponse. # noqa: E501
+ :rtype: datetime
+ """
+ return self._last_login_date_utc
+
+ @last_login_date_utc.setter
+ def last_login_date_utc(self, last_login_date_utc):
+ """Sets the last_login_date_utc of this UserResponse.
+
+ Timestamp of user last login # noqa: E501
+
+ :param last_login_date_utc: The last_login_date_utc of this UserResponse. # noqa: E501
+ :type: datetime
+ """
+
+ self._last_login_date_utc = last_login_date_utc
+
+ @property
+ def is_external_partner(self):
+ """Gets the is_external_partner of this UserResponse. # noqa: E501
+
+ User is external partner. # noqa: E501
+
+ :return: The is_external_partner of this UserResponse. # noqa: E501
+ :rtype: bool
+ """
+ return self._is_external_partner
+
+ @is_external_partner.setter
+ def is_external_partner(self, is_external_partner):
+ """Sets the is_external_partner of this UserResponse.
+
+ User is external partner. # noqa: E501
+
+ :param is_external_partner: The is_external_partner of this UserResponse. # noqa: E501
+ :type: bool
+ """
+
+ self._is_external_partner = is_external_partner
+
+ @property
+ def has_accountant_role(self):
+ """Gets the has_accountant_role of this UserResponse. # noqa: E501
+
+ User has Accountant role. # noqa: E501
+
+ :return: The has_accountant_role of this UserResponse. # noqa: E501
+ :rtype: bool
+ """
+ return self._has_accountant_role
+
+ @has_accountant_role.setter
+ def has_accountant_role(self, has_accountant_role):
+ """Sets the has_accountant_role of this UserResponse.
+
+ User has Accountant role. # noqa: E501
+
+ :param has_accountant_role: The has_accountant_role of this UserResponse. # noqa: E501
+ :type: bool
+ """
+
+ self._has_accountant_role = has_accountant_role
+
+ @property
+ def month_period(self):
+ """Gets the month_period of this UserResponse. # noqa: E501
+
+ Month period in format yyyy-MM. # noqa: E501
+
+ :return: The month_period of this UserResponse. # noqa: E501
+ :rtype: str
+ """
+ return self._month_period
+
+ @month_period.setter
+ def month_period(self, month_period):
+ """Sets the month_period of this UserResponse.
+
+ Month period in format yyyy-MM. # noqa: E501
+
+ :param month_period: The month_period of this UserResponse. # noqa: E501
+ :type: str
+ """
+
+ self._month_period = month_period
+
+ @property
+ def number_of_logins(self):
+ """Gets the number_of_logins of this UserResponse. # noqa: E501
+
+ Number of times the user has logged in. # noqa: E501
+
+ :return: The number_of_logins of this UserResponse. # noqa: E501
+ :rtype: int
+ """
+ return self._number_of_logins
+
+ @number_of_logins.setter
+ def number_of_logins(self, number_of_logins):
+ """Sets the number_of_logins of this UserResponse.
+
+ Number of times the user has logged in. # noqa: E501
+
+ :param number_of_logins: The number_of_logins of this UserResponse. # noqa: E501
+ :type: int
+ """
+
+ self._number_of_logins = number_of_logins
+
+ @property
+ def number_of_documents_created(self):
+ """Gets the number_of_documents_created of this UserResponse. # noqa: E501
+
+ Number of documents created. # noqa: E501
+
+ :return: The number_of_documents_created of this UserResponse. # noqa: E501
+ :rtype: int
+ """
+ return self._number_of_documents_created
+
+ @number_of_documents_created.setter
+ def number_of_documents_created(self, number_of_documents_created):
+ """Sets the number_of_documents_created of this UserResponse.
+
+ Number of documents created. # noqa: E501
+
+ :param number_of_documents_created: The number_of_documents_created of this UserResponse. # noqa: E501
+ :type: int
+ """
+
+ self._number_of_documents_created = number_of_documents_created
+
+ @property
+ def net_value_documents_created(self):
+ """Gets the net_value_documents_created of this UserResponse. # noqa: E501
+
+ Net value of documents created. # noqa: E501
+
+ :return: The net_value_documents_created of this UserResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._net_value_documents_created
+
+ @net_value_documents_created.setter
+ def net_value_documents_created(self, net_value_documents_created):
+ """Sets the net_value_documents_created of this UserResponse.
+
+ Net value of documents created. # noqa: E501
+
+ :param net_value_documents_created: The net_value_documents_created of this UserResponse. # noqa: E501
+ :type: float
+ """
+
+ self._net_value_documents_created = net_value_documents_created
+
+ @property
+ def absolute_value_documents_created(self):
+ """Gets the absolute_value_documents_created of this UserResponse. # noqa: E501
+
+ Absolute value of documents created. # noqa: E501
+
+ :return: The absolute_value_documents_created of this UserResponse. # noqa: E501
+ :rtype: float
+ """
+ return self._absolute_value_documents_created
+
+ @absolute_value_documents_created.setter
+ def absolute_value_documents_created(self, absolute_value_documents_created):
+ """Sets the absolute_value_documents_created of this UserResponse.
+
+ Absolute value of documents created. # noqa: E501
+
+ :param absolute_value_documents_created: The absolute_value_documents_created of this UserResponse. # noqa: E501
+ :type: float
+ """
+
+ self._absolute_value_documents_created = absolute_value_documents_created
+
+ @property
+ def attached_practices(self):
+ """Gets the attached_practices of this UserResponse. # noqa: E501
+
+
+ :return: The attached_practices of this UserResponse. # noqa: E501
+ :rtype: list[PracticeResponse]
+ """
+ return self._attached_practices
+
+ @attached_practices.setter
+ def attached_practices(self, attached_practices):
+ """Sets the attached_practices of this UserResponse.
+
+
+ :param attached_practices: The attached_practices of this UserResponse. # noqa: E501
+ :type: list[PracticeResponse]
+ """
+
+ self._attached_practices = attached_practices
+
+ @property
+ def history_records(self):
+ """Gets the history_records of this UserResponse. # noqa: E501
+
+
+ :return: The history_records of this UserResponse. # noqa: E501
+ :rtype: list[HistoryRecordResponse]
+ """
+ return self._history_records
+
+ @history_records.setter
+ def history_records(self, history_records):
+ """Sets the history_records of this UserResponse.
+
+
+ :param history_records: The history_records of this UserResponse. # noqa: E501
+ :type: list[HistoryRecordResponse]
+ """
+
+ self._history_records = history_records
diff --git a/xero_python/identity/api/identity_api.py b/xero_python/identity/api/identity_api.py
index 6fcefe7c..d05d0212 100644
--- a/xero_python/identity/api/identity_api.py
+++ b/xero_python/identity/api/identity_api.py
@@ -10,7 +10,7 @@
"""
"""
- OpenAPI spec version: 2.17.1
+ OpenAPI spec version: 2.17.2
"""
import importlib
diff --git a/xero_python/payrollau/api/payroll_au_api.py b/xero_python/payrollau/api/payroll_au_api.py
index d36ccca8..1e863f80 100644
--- a/xero_python/payrollau/api/payroll_au_api.py
+++ b/xero_python/payrollau/api/payroll_au_api.py
@@ -10,7 +10,7 @@
"""
"""
- OpenAPI spec version: 2.17.1
+ OpenAPI spec version: 2.17.2
"""
import importlib
diff --git a/xero_python/payrollnz/api/payroll_nz_api.py b/xero_python/payrollnz/api/payroll_nz_api.py
index 4b835a22..01b531ca 100644
--- a/xero_python/payrollnz/api/payroll_nz_api.py
+++ b/xero_python/payrollnz/api/payroll_nz_api.py
@@ -10,7 +10,7 @@
"""
"""
- OpenAPI spec version: 2.17.1
+ OpenAPI spec version: 2.17.2
"""
import importlib
diff --git a/xero_python/payrolluk/api/payroll_uk_api.py b/xero_python/payrolluk/api/payroll_uk_api.py
index c91142f7..2a69727a 100644
--- a/xero_python/payrolluk/api/payroll_uk_api.py
+++ b/xero_python/payrolluk/api/payroll_uk_api.py
@@ -10,7 +10,7 @@
"""
"""
- OpenAPI spec version: 2.17.1
+ OpenAPI spec version: 2.17.2
"""
import importlib
diff --git a/xero_python/project/api/project_api.py b/xero_python/project/api/project_api.py
index 888d63aa..4451fa53 100644
--- a/xero_python/project/api/project_api.py
+++ b/xero_python/project/api/project_api.py
@@ -10,7 +10,7 @@
"""
"""
- OpenAPI spec version: 2.17.1
+ OpenAPI spec version: 2.17.2
"""
import importlib