""" Hypercore GraphQL API schema. Retrieved verbatim via GraphQL introspection of the production endpoint. Source: https://api.hypercore.ai/graphql Docs: https://docs.hypercore.ai/docs/api/ Retrieved: 2026-07-19 """ schema { query: Query mutation: Mutation subscription: Subscription } "Custom scalar for BigInt values" scalar BigInt "Date custom scalar type" scalar Date "Date Time custom scalar type" scalar DateTime scalar JSON enum AggregationPeriod { Month Week Day } enum AgingAnalysisMode { SubtractNewToOld SubtractOldToNew } enum AllocationParameter { Client Product Purpose } enum AmortizationDefinitionRepaymentsType { SingleRepayment RepaymentsPeriod } enum AmortizationType { EqualPrincipalPayments EqualInstallments Custom EqualInstallmentsGoalSeek EqualInstallmentsCalculatedInterest EqualInstallmentsSimple EqualInstallmentsPrincipalBySimpleInterestOnPrincipal } enum AmortizationTypeForDefinition { EqualPrincipalPayments EqualInstallments EqualInstallmentsGoalSeek EqualInstallmentsCalculatedInterest EqualInstallmentsSimple EqualInstallmentsPrincipalBySimpleInterestOnPrincipal } enum AssetStatus { Pending Approved Active Closed Rejected } enum AuditActionType { ActivateEquity ActivateLoan AddOIDComponent AllocateFunds ApproveChangeRequest ApproveDraftLoanTerms ApproveEquity ApproveLoan ArchiveDataApplication ArchiveGenericDataApplication AssignEquityFundingSources AssignLoanFundingSources ChangeBaseCurrency CloseEquity CloseLoan CommentOnChangeRequest CreateBroker CreateClient CreateDataApplication CreateDataApplicationTemplate CreateDeposit CreateDraftLoanTerms CreateDynamicProperty CreateDynamicTable CreateDynamicTableRow CreateEquity CreateEquityAllocation CreateEquityExpectedTransaction CreateEquityValuation CreateFee CreateFundingEntity CreateFundingEntityTransaction CreateGenericDataApplication CreateGroupLoan CreateImport CreateLoanFunding CreateLoanFundingTemplate CreateLoanFundingTransaction CreateLoanTemplate CreateLoanTerms CreateLoanValuation CreateView CreateWorkflowBoard CreateWorkflowCard CreateWorkflowStage DeactivateClient DeactivateFundingEntity DeleteBroker DeleteClient DeleteCommentOnChangeRequest DeleteDataApplication DeleteDataApplicationTemplate DeleteDeposit DeleteDocument DeleteDraftLoanTerms DeleteDynamicProperty DeleteDynamicTable DeleteDynamicTableRow DeleteEntityChangeRequest DeleteEquity DeleteEquityAllocation DeleteEquityExpectedTransaction DeleteEquityValuation DeleteExpectedRepaymentUpdate DeleteFee DeleteFundingEntity DeleteFundingSourcesAllocationDraft DeleteGenericDataApplication DeleteGroupLoan DeleteLoan DeleteLoanFunding DeleteLoanFundingDebtSell DeleteLoanFundingTemplate DeleteLoanFundingTerms DeleteLoanTemplate DeleteLoanTerms DeleteLoanValuation DeleteOIDComponent DeleteTransaction DeleteView DeleteWorkflowBoard DeleteWorkflowCard DeleteWorkflowStage DisableEffectiveRateRestructureOnDate DuplicateLoan EditCommentOnChangeRequest EditDraftLoanTerms EditLoanFundingTerms EditLoanTerms EnableEffectiveRateRestructureOnDate ExecuteFundingSourcesAllocation ExecuteImport ExecuteLoanFundingDebtSell ExerciseEquity InitLoanFundingDebtSell InsertDocument MakeCapitalization MakeDisbursementTransaction MakeEarlyRedemption MakeEquityTransaction MakeManualEntry MakeRepaymentTransaction MakeWaiverTransaction MakeWriteOffTransaction ModifyLoan ReactivateClient ReactivateFundingEntity RejectChangeRequest RejectEquity RejectLoan UndoRejectChangeRequest ReopenEquity ReopenLoan RequestChangeRequestApproval RequestChangeRequestUpdate ResetExpectedRepaymentUpdates RestoreDataApplication RestoreGenericDataApplication RestructureOID SaveImportRecords SellLoanFundingDebt SetDataApplicationResponse SetFloatingRateValues SetLoanDefaultEvents SetNewCurrencyValues AddCurrency DeleteCurrency SubmitLoan UndoActivateLoan UndoApproveLoan UndoCapitalization UndoDisbursementTransaction UndoEarlyRedemption UndoEquityActivation UndoEquityApproval UndoEquityRejection UndoEquityTransaction UndoExerciseEquity UndoFundingEntityTransaction UndoFundingSourcesAllocation UndoImport UndoLoanFundingDebtSell UndoLoanFundingTransaction UndoLoanRejection UndoManualEntry UndoRepaymentTransaction UndoWaiverTransaction UndoWriteOffTransaction UpdateBroker UpdateChangeRequestAsChecker UpdateChangeRequestAsMaker UpdateClient UpdateDataApplication UpdateDataApplicationStatus UpdateDataApplicationTemplate UpdateDeposit UpdateDraftTransaction UpdateDynamicProperty UpdateDynamicPropertyLock UpdateDynamicTable UpdateDynamicTableLock UpdateDynamicTableRow UpdateEquityAllocation UpdateEquityExpectedTransaction UpdateEquityInfo UpdateEquityValuation UpdateExpectedRepayment UpdateExtraDetails UpdateFee UpdateFundingEntity UpdateFundingEntityTransactionInfo UpdateGenericDataApplication UpdateLoanFlags UpdateLoanFundingDebtSell UpdateLoanFundingDebtSellComponents UpdateLoanFundingInfo UpdateLoanFundingTemplate UpdateLoanFundingTerms UpdateLoanInfo UpdateLoanTemplate UpdateLoanTermsInfo UpdateLoanValuation UpdateOIDComponent UpdateOIDDateLock UpdateTransactionInfo UpdateView UpdateWorkflowBoard UpdateWorkflowCard UpdateWorkflowStage UpsertFundingSourcesAllocationDraft VerifyDataApplicationSection ApplyChangeRequestChanges UpdateGlobalSettings UpdateAdminGlobalSettings UpdateTranslations EditDisbursementTransaction EditRepaymentTransaction EditWaiverTransaction EditWriteOffTransaction EditEarlyRedemption EditCapitalization EditManualEntry EditLoanFundingTransaction CreateFileEntry UpdateFileEntry DeleteFileEntry RecalculateLoanSchedules UpdateFloatingRates SetFloatingRates CalculateHistoricalKpis CreateLoanImport ExecuteLoanImport UndoLoanImport SaveLoanImportRecords CreateLoanApprovalImport ExecuteLoanApprovalImport UndoLoanApprovalImport SaveLoanApprovalImportRecords CreateLoanTermsImport ExecuteLoanTermsImport UndoLoanTermsImport SaveLoanTermsImportRecords CreateLoanFeeImport ExecuteLoanFeeImport UndoLoanFeeImport SaveLoanFeeImportRecords CreateLoanValuationImport ExecuteLoanValuationImport UndoLoanValuationImport SaveLoanValuationImportRecords CreateLoanInfoImport ExecuteLoanInfoImport UndoLoanInfoImport SaveLoanInfoImportRecords CreateLoanInvestorImport ExecuteLoanInvestorImport UndoLoanInvestorImport SaveInvestorImportRecords CreateTransactionImport ExecuteTransactionImport UndoTransactionImport SaveTransactionImportRecords CreateTransactionHistoryOverrideImport ExecuteTransactionHistoryOverrideImport UndoTransactionHistoryOverrideImport SaveTransactionHistoryOverrideImportRecords CreateEarlyRedemptionBulkAction ExecuteEarlyRedemptionBulkAction UndoEarlyRedemptionBulkAction SaveEarlyRedemptionBulkActionRecords CreateMakeRepaymentsBulkAction ExecuteMakeRepaymentsBulkAction UndoMakeRepaymentsBulkAction SaveMakeRepaymentsBulkActionRecords CreateCloseLoanBulkAction ExecuteCloseLoanBulkAction UndoCloseLoanBulkAction SaveCloseLoanBulkActionRecords CreateDeleteLoanBulkAction ExecuteDeleteLoanBulkAction UndoDeleteLoanBulkAction SaveDeleteLoanBulkActionRecords CreateOIDComponentImport ExecuteOIDComponentImport UndoOIDComponentImport SaveOIDComponentImportRecords CreateLoanOIDValueImport ExecuteLoanOIDValueImport UndoLoanOIDValueImport SaveLoanOIDValueImportRecords CreateExpectedTransactionImport ExecuteExpectedTransactionImport UndoExpectedTransactionImport SaveExpectedTransactionImportRecords CreateExpectedDeploymentImport ExecuteExpectedDeploymentImport UndoExpectedDeploymentImport SaveExpectedDeploymentImportRecords CreateAgingBaselineImport ExecuteAgingBaselineImport UndoAgingBaselineImport SaveAgingBaselineImportRecords CreateClientImport ExecuteClientImport UndoClientImport SaveClientImportRecords CreateFundingEntityImport ExecuteFundingEntityImport UndoFundingEntityImport SaveFundingEntityImportRecords CreateCashFlowTransactionImport ExecuteCashFlowTransactionImport UndoCashFlowTransactionImport SaveCashFlowTransactionImportRecords CreateEquityImport ExecuteEquityImport UndoEquityImport SaveEquityImportRecords CreateEquityValuationImport ExecuteEquityValuationImport UndoEquityValuationImport SaveEquityValuationImportRecords CreateDataTableRowImport ExecuteDataTableRowImport UndoDataTableRowImport SaveDataTableRowImportRecords CreateFundingSourceTransactionImport ExecuteFundingSourceTransactionImport UndoFundingSourceTransactionImport SaveFundingSourceTransactionImportRecords CreateFundingSourceScheduleImport ExecuteFundingSourceScheduleImport UndoFundingSourceScheduleImport SaveFundingSourceScheduleImportRecords CreateFundingSourceOIDValuesImport ExecuteFundingSourceOIDValuesImport UndoFundingSourceOIDValuesImport SaveFundingSourceOIDValuesImportRecords CreateFundingSourceOIDComponentAllocationImport ExecuteFundingSourceOIDComponentAllocationImport UndoFundingSourceOIDComponentAllocationImport SaveFundingSourceOIDComponentAllocationImportRecords CreateFundingSourceValuationImport ExecuteFundingSourceValuationImport UndoFundingSourceValuationImport SaveFundingSourceValuationImportRecords CreateFundingSourceFeeAllocationImport ExecuteFundingSourceFeeAllocationImport UndoFundingSourceFeeAllocationImport SaveFundingSourceFeeAllocationImportRecords CreateFundingSourceTermsImport ExecuteFundingSourceTermsImport UndoFundingSourceTermsImport SaveFundingSourceTermsImportRecords } enum AuditEntityType { Broker Client ChangeRequest DataApplication DataApplicationTemplate Deposit Document DynamicProperty DynamicTable DynamicTableRow Equity EquityAllocation EquityExerciseEntry EquityTransaction EquityValuation ExpectedRepaymentUpdate Fee FileEntry FloatingRate FundingEntity FundingEntityTransaction GenericDataApplication GlobalSettings GroupLoan Import InvestmentEntity Loan LoanFunding LoanFundingTemplate LoanFundingTerms LoanFundingDebtSell LoanTemplate LoanTerms LoanValuation OIDComponent OIDTerms StatementProcess StatementProcessRecord Transaction View WorkflowBoard } enum BrokersDistinctBy { DataApplication } enum CapitalizationComponent { principal compoundingInterest } enum ChangeRequestAction { Create Update Delete } enum ChangeRequestActionRecordType { OidRestructure } enum ChangeRequestChangeType { TermsCreated TermsUpdated TermsDeleted LoanCreated DepositCreated DepositUpdated DepositDeleted FeeCreated FeeUpdated FeeDeleted TransactionCreated TransactionUpdated TransactionDeleted OidComponentCreated OidComponentUpdated OidComponentDeleted OidRestructure } enum ChangeRequestStatus { Draft PendingApproval RequiresUpdates Approved Rejected } enum ChatMessageRole { USER ASSISTANT SYSTEM } enum ClientFixedProperty { Description Type AccountOverview Name ContactFirstName ContactLastName IdentificationNumber MobileNumber Email } enum ClientSortByFieldEnum { Id DisplayName CreatedAt CurrentCommitment OutstandingBalance TotalOverdue WarrantsValue SharesValue NextPayment LastPayment } enum ClientStatementFileNameOptions { TemplateName_ClientName TemplateName_ClientId_ClientName ClientName ClientId_ClientName } enum ClientType { Company Individual } enum ClientsDistinctBy { DataApplication Loan Equity WorkflowBoard ChangeRequest } enum CostCalcMethod { FIFO LIFO Weighted_AVG } enum Countries { Afghanistan Albania Algeria American_Samoa Andorra Angola Anguilla Antarctica Argentina Armenia Aruba Australia Austria Azerbaijan Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Botswana Bouvet_Island Brazil British_Indian_Ocean_Territory Brunei Bulgaria Burkina_Faso Burundi Cambodia Cameroon Canada Cape_Verde Cayman_Islands Central_African_Republic Chad Chile China Christmas_Island Cocos_Keeling_Islands Colombia Comoros Cook_Islands Costa_Rica Cuba Cyprus Denmark Djibouti Dominica Dominican_Republic Ecuador Egypt El_Salvador Equatorial_Guinea Eritrea Estonia Ethiopia Falkland_Islands Faroe_Islands Finland France French_Guiana French_Polynesia French_Southern_Territories Gabon Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guinea Guinea_Bissau Guyana Haiti Honduras Hong_Kong Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Jamaica Japan Jordan Kazakhstan Kenya Kiribati Kuwait Kyrgyzstan Laos Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macedonia Madagascar Malawi Malaysia Maldives Mali Malta Marshall_Islands Martinique Mauritania Mauritius Mayotte Mexico Micronesia Moldova Monaco Mongolia Montserrat Morocco Mozambique Namibia Nauru Nepal New_Caledonia New_Zealand Nicaragua Niger Nigeria Niue Norfolk_Island Northern_Mariana_Islands Norway Oman Pakistan Palau Panama Paraguay Peru Philippines Poland Portugal Puerto_Rico Qatar Romania Russia Rwanda Samoa San_Marino Saudi_Arabia Senegal Serbia Seychelles Sierra_Leone Singapore Slovakia Slovenia Solomon_Islands Somalia South_Africa South_Sudan Spain Sri_Lanka Sudan Suriname Swaziland Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand Togo Tokelau Tonga Tunisia Turkey Turkmenistan Tuvalu Uganda Ukraine United_Arab_Emirates United_Kingdom United_States Uruguay Uzbekistan Vanuatu Venezuela Vietnam Western_Sahara Yemen Zambia Zimbabwe } enum Currency { AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BMD BND BOB BRL BSD BTN BWP BYN BZD CAD CHF CLP CNH CNY COP CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GGP GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS IMP INR IQD IRR ISK JEP JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SOS SRD SSP STN SVC SYP SZL THB TJS TMT TND TOP TRY TTD TVD TWD TZS UAH UGX USD UYU UZS VEF VND VUV WST XAF XCD XOF XPF YER ZAR ZMW ZWD } enum DataApplicationInputFieldType { Text Textarea Number Date Select Checkbox File Table } enum DataApplicationRelatedEntityType { Client Loan DynamicTable WorkflowCard } enum DataApplicationStaticFieldType { Text Image Title } enum DataApplicationStatus { Sent InProgress SubmittedWithIssues Submitted InReview Reviewed Expired } enum DataApplicationTemplatesDistinctBy { GenericDataApplication DataApplication WorkflowBoard } enum DaysInEveryEnum { Start End Specific } enum DaysInMonth { Actual Days30 } enum DaysInYear { Actual Days366 Days365 Days364 Days360 } enum DealSortByFieldEnum { Id Name Status FacilitySize CreatedAt UpdatedAt } enum DealStatus { DRAFT EXTRACTING REVIEW ACTIVE CLOSED } enum DebtSellComponentType { AccruedCompoundingInterest OutstandingCompoundingInterest AccruedInterest AmortizedOID AmortizedOidCommitmentFee AmortizedOidEotFee AmortizedOidWarrant Cost DebtPremiumOrDiscount DebtRealized DebtUnrealized EquityPremiumOrDiscount EquityRealized EquityUnrealized LoanFmv OutstandingPrincipal SecurityDeposit ShareCount UnamortizedOID UnamortizedOidEotFee UnamortizedOidCommitmentFee UnamortizedOidWarrant WarrantCost WarrantFmv CostOnLastQuarterEnd UnallocatedCommitmentFee OutstandingFee OutstandingPenalty Commitment } enum DepositConditions { ExcludesFees PaysInterestAndCompoundingOnly ExcludesFeesOnDepositPaymentDate } enum DepositPaysForOptions { FirstRepayments LastRepayments } enum DisplayConditionType { Equal NotEqual Contain NotContain GreaterThan LessThan Empty NotEmpty } enum DocTemplateType { LOAN_STATEMENT CLIENT_STATEMENT LOAN_FUNDING_STATEMENT FUNDING_ENTITY_STATEMENT } enum DocumentEntity { Loan Client Equity InvestmentEntity FundingEntity LoanFunding GlobalSettings DataApplicationTemplate } enum DocumentType { PDF DOCX } "Dues calculation method for the loan. This dictates for each day, if interest would be calculated based on the outstanding principal before disbursement, after disbursement or after repayment (end of day)." enum DuesCalculationMethod { BeforeDisbursement AfterDisbursement EndOfDay } enum DynamicEntityType { Loan Client Equity InvestmentEntity FundingEntity LoanFunding General Broker } enum DynamicPropertyColumnType { DBColumn FixedProperty } enum DynamicPropertyEntityType { WorkflowBoard DynamicTable } enum DynamicPropertyRelationType { Loan Client Equity InvestmentEntity FundingEntity LoanFunding Broker DynamicTable } enum DynamicPropertyType { String Number Float Percentage Boolean Date Select MultiSelect Location Relation } enum DynamicTableType { SingleRow MultiRow } enum EarlyRedemptionDistributionMethod { ProRata FIFO } enum EarlyRedemptionInBulkLoanClosureBehavior { CloseAll CloseFullyRedeemed KeepActive } enum EarlyRedemptionRepaymentBreakdownStrategy { TotalAmount Nominal } enum EntityType { GROUP LOAN CLIENT EQUITY } enum EquityTransactionType { Buy Sell ReturnOfCapital } enum EquityType { Warrant Share } enum EquityValuationType { Internal External Blended BlackScholes Backsolve Cost Market Level1 PracticalExpedient } enum EveryFromEnum { OnDisbursementDay OnStart OnEnd OnDay DaysBeforeEnd } enum ExpectedRepaymentUpdateType { Create Update Delete } enum FeeCalculation { Flat PercentageOfApprovedAmount PercentageOfOutstandingPrincipal PercentageOfOutstandingPrincipalInterest PercentageOfOutstandingPrincipalCompounding PercentageOfOutstandingPrincipalInterestCompounding PercentageOfExpectedRepaymentOutstandingPrincipal PercentageOfExpectedRepaymentOutstandingPrincipalInterest PercentageOfExpectedRepaymentOutstandingPrincipalCompounding PercentageOfExpectedRepaymentOutstandingPrincipalInterestCompounding PercentageOfDisbursement PercentageOfTotalDisbursed IsraeliBankingDiscounting IsraeliBankingCPIAverage FlatMinimumInterestAndCompoundingInterest MonthsForMinimumInterestAndCompoundingInterest MinimumInterestForPaidPrincipalByMonths MinimumInterestForFirstDisbursementByMonths MinimumInterestForTotalDisbursed PercentageOfFutureInterestChargesUntilMaturity PercentageOfPrincipalRepayment PercentageOfInterestRepayment PercentageOfUnutilizedAmount PercentageOfUnutilizedFacility PercentageOfApprovedAmountMinusDisbursements PercentageOfUnutilizedDisbursements PercentageOfUnutilizedDisbursementsRestOfPeriod PercentageOfUnutilizedDisbursementsActualVsExpected PercentageOfNonAmortizedApprovedAmount PercentageOfExpectedDisbursementsAndCompoundingInterest PercentageOfApprovedAmountMinusCapitalizedBalance } enum FeeOidSettings { ExcludeFromOID RecognizeForOID } enum FeeTiming { Frequency SpecificDate OnFirstDisbursement OnEveryDisbursement OnLoanStart OnArrearsFrequency OnRepayment OnEarlyRedemption OnLastExpectedPrincipalRepayment AsInterest None OnPrincipalRepayment OnInterestRepayment OnPrincipalRepaymentOrEarlyRedemption OnPrepayment OnPrepaymentOrEarlyRedemption ProportionalToPrepaidPrincipal OnMaturityAndProportionallyToPrepayment } enum FileEntryEntityType { Loan Client Equity FundingEntity LoanFunding WorkflowCard Deal ChangeRequest } enum FileExtractionStatus { PENDING EXTRACTING COMPLETE FAILED } enum FloatingRateProvider { BANK_OF_ENGLAND BANK_OF_ISRAEL BLOOMBERG DEKEL EUROPEAN_CENTRAL_BANK EURIBOR_RATES EXCHANGERATE FRED FRED_INTERNAL IBORATE ISRAEL_CENTRAL_BUREAU_OF_STATISTICS NEW_YORK_FEDERAL_BANK SOUTH_AFRICAN_RESERVE_BANK TRADING_ECONOMICS CME_GROUP CME_GROUP_V2 } enum FrequencyEveryEnum { Year Month Week Day } enum FundingEntityFixedProperty { Name BaseCurrency } enum FundingEntitySortByFieldEnum { Id Name TotalCommitment TotalDisbursement UtilizationRate TotalReturned ExpectedTotalValue Irr Tvpi Dpi LastScheduleUpdate } enum FundingEntityStatementFileNameOptions { TemplateName_FundingEntityName TemplateName_FundingEntityId_FundingEntityName FundingEntityName FundingEntityId_FundingEntityName } enum HistoricalKPIsCalculationDay { FirstDayOfMonth LastDayOfMonth } enum HypercoreModule { Equity DataApplication FundingSource Investors Workflows ChangeRequests } enum ImportMode { Add Upsert ReplaceAll } enum ImportRecordEntityType { AgingAnalysisHistory Client DynamicTable DynamicTableRow Equity EquityValuation FundingEntity FundingEntityTransaction Loan LoanFee LoanFunding LoanFundingFeeAllocation LoanFundingOIDComponentAllocation LoanFundingTerms LoanTerms LoanTransaction LoanValuation OIDComponent } enum ImportRecordStatus { Processing Pending InProgress Completed Reverting Reverted Error RevertError } enum ImportRevertStatus { InProgress Reverted Error } enum ImportStatus { Processing PendingReview InProgress Completed Error } enum ImportType { AgingHistory Client CloseLoan DeleteLoan DynamicTableRow EarlyRedemption Equity EquityValuation ExpectedDeployment ExpectedTransaction FundingEntity LoanFundingOIDComponentAllocation LoanFundingFeeAllocation Loan LoanApproval LoanFee LoanValuation LoanFundingSources LoanFundingTerms LoanInfo LoanTerms MakeRepayments OIDComponent OIDHistoryOverride RecalculateFundingEntitiesKPIs RecalculateGroupLoans RecalculateLoans RecalculateMultiLoans RecalculateSpecificLoans Transaction TransactionHistoryOverride LoanFundingValuation LoanFundingTransaction LoanFundingTransactionHistoryOverride LoanFundingOIDHistoryOverride FundingEntityTransaction } enum InstallmentComponentType { Principal Interest CompoundingInterest Fees Penalties Taxes } enum InterestCalculationPeriodType { Daily } enum InterestType { DecliningBalance Flat FlatOnApprovedAmount } enum InvestmentTransactionType { CAPITAL_CALL LOAN_REPAYMENT DISTRIBUTION_RECEIVED INVESTMENT LOAN_DRAWDOWN DISTRIBUTION_MADE } enum KPIsCalculationType { Current Expected } enum LoanFixedProperty { ReferenceId Description Group MultiLoanFacility Client Owner Product FundingSources OldFundingSources Purpose Broker LoanAmount ApprovalDate SubmissionDate DealCard ContractClosingDate StatusNote } enum LoanFundingDebtSellStatus { PendingReview Completed Reverted Error } enum LoanFundingFeeAllocationType { SameAsBorrower OverrideAmount PercentageAllocation AllocationByCommitmentPercentage AllocationByOutstandingPrincipal AllocationByTotalPaidFromDeposit FixedAmountToAllocate } enum LoanFundingFixedProperty { LastUpdate Template Description } enum LoanFundingStatementFileNameOptions { TemplateName_FundingEntityName TemplateName_FundingEntityName_LoanName TemplateName_FundingEntityId_FundingEntityName TemplateName_FundingEntityId_FundingEntityName_LoanId_LoanName FundingEntityName FundingEntityId_FundingEntityName FundingEntityName_LoanName FundingEntityId_FundingEntityName_LoanName FundingEntityName_ClientName FundingEntityId_FundingEntityName_ClientName } enum LoanFundingTermsInterestMode { Enabled Disabled MatchAssetTerms ProRata ByRelativeOutstandingPrincipal } enum LoanLifeCycle { Pending Start ContractClosure Revolving WithdrawalPeriod Amortization Maturity Defaulted } enum LoanScheduleRowType { PreRepaymentDue PostExpectedRepaymentDue PostRepaymentDue Disbursement ExpectedDisbursement Repayment ExpectedRepayment EarlyRedemptionRepayment Waiver WriteOff Capitalization ManualEntry } enum LoanSortByFieldEnum { Id Client LoanTypeName LoanPurpose Group StartDate EndDate LifeCycle Commitment Outstanding Repaid Overdue Owner } enum LoanStatementFileNameOptions { TemplateName_LoanName TemplateName_LoanId_LoanName TemplateName_LoanName_ClientName TemplateName_LoanId_LoanName_ClientName LoanName LoanId_LoanName LoanName_ClientName LoanId_LoanName_ClientName } enum LoanStatusEnum { Active ActiveNotDisbursed PendingApproval Approved Closed Overpaid Rejected } enum LoanSummaryCardSection { total principal interest compoundingInterest fees } enum LoanTermsUtilities { BulletLoanWithCompoundingInterestPresentValue } enum LoanWizardFields { additionalInformation advanceInterestRepaymentsAtStartOfPeriod advanceRepaymentsAtStartOfPeriod advanceSimpleInterestRepaymentsAtStartOfPeriod amortizationType capitalizeOutstandingCompounding commitmentExpirationDate compoundingInterestEnabled compoundingInterestFrequency compoundingInterestMethod compoundingInterestRatePer CompoundingInterestRepaymentFrequency compoundingInterestRepaymentStartDate compoundingInterestUpdateStartDate compoundingInterestUpdates contractClosingDate daysInYearSettings deposits feesWizard grace interest interestAccrualFrequency interestEffectiveDateDelayInDays interestFrequency interestMethod interestRatePer interestStartDate interestUpdates loanName loanTermPeriod maturityDate paymentOnNonWorkingDay principalIndexUpdates exchangeRateUpdates principalStartDate purpose utilizationAssumptions floatingInterestDeterminationFrequency } enum LoansDistinctBy { WorkflowBoard ChangeRequest } enum MakeRepaymentsInBulkLoanClosureBehavior { CloseFullyPaid KeepActive } enum MakeRepaymentsInBulkRepaymentsFrom { AfterLastTransaction AllInRange } enum McpAccessLevel { None Query QueryAndMutation } enum NoteEntityType { Loan Equity Client FundingEntity LoanFunding } enum NotificationEmailDigestFrequency { Weekly Daily None } enum NotificationEntityType { AssignedDataApplication Loan Equity Client FundingSource FundingEntity System BulkAction } enum NotificationScope { All OwnedByMe } enum NotificationType { BorrowerFormCreateFromGeneric BorrowerFormCreateFromEmail BorrowerFormFirstEngagement BorrowerFormSubmission NoCompletionReminderToLender BulkActionPendingReview BulkActionFailed BulkActionCompleted BulkActionReverted BulkActionTypeAlreadyInProgress StatementsGenerationCompleted StatementsReadyForReview ChangeRequestPendingApproval ChangeRequestRequiresUpdates ChangeRequestRejected ChangeRequestApproved LoanMaturing MissedPayment RevolvingPeriodEnds UpcomingDisbursement UpcomingRepayment HistoricalKPIsCalculationCompleted } enum OIDComponentType { Income Expense } enum OIDMethod { IFRS GAAPByOutstandingPrincipal GAAPByRemainingCost StraightLine } enum OIDRestructureEventEntityType { DaysSettings FeeValueUpdate LoanTerms LoanTransaction RateUpdate OIDComponent } enum OidComponentAllocationType { SameAsBorrower FixedAmount ByPercentage ProRataByCommitment } "Defines how to set the loan payment date for non working days and holidays." enum PaymentOnNonWorkingDaySettings { "Payment will be made on the next working day" NextWorkingDay "Payment will be made on the previous working day if it is a working day" PreviousWorkingDay "None" None } enum PortfolioAmountInclusionOption { Outstanding Disbursement } enum PositionOption { START END } enum PrincipalAmortizationDeterminationEvent { FirstExpectedPrincipalRepayment TermsStart LastDisbursementBeforeAmortization } enum RelatedInvestmentTargetType { INVESTMENT_ENTITY EQUITY LOAN } enum RelativeDateType { RelativeToFirstDisbursement RelativeToFirstExpectedRepayment } enum RepaymentType { EarlyRedemption Regular } enum ResourceType { clients clientIdentifiers groups savings shares loans } enum ScheduleSortOption { Date EffectiveDate } enum StatementActionOption { InterestDueRowsFrom TransactionsFrom } "The kind of entity a statement process is generated for. Determines how records are built and which recipients are inherited." enum StatementEntityType { Loan Client FundingEntity LoanFunding } "Lifecycle status of a single statement record within a statement process." enum StatementProcessRecordStatus { "The statement file is being generated asynchronously." Generating "Generated and awaiting reviewer approval." InReview "Reviewed and ready to send." Reviewed "Currently being sent to recipients." Sending "Successfully sent to recipients." Sent "Statement file generation failed" ErrorGenerating "Sending the statement email failed" ErrorSending } "Aggregate lifecycle status of a statement process, derived from the statuses of its records." enum StatementProcessStatus { "At least one record is still being generated." Generating "All records generated; not all have been reviewed yet." InReview "All records have been reviewed and are ready to send." Reviewed "One or more reviewed records are being sent." Sending "All records have been sent." Completed "Processing has finished, but one or more records ended in an error state rather than being sent." CompletedWithErrors } enum TransactionType { Disbursement Repayment Waiver WriteOff EarlyRedemptionRepayment Capitalization ManualEntry } enum TransactionVerificationStatus { Valid InvalidTransaction InvalidLoan AmountMismatch ExpectedRepaymentMismatch } enum UserNotificationEventType { LoanMaturing MissedPayment UpcomingRepayment RevolvingPeriodEnds UpcomingDisbursement } enum UsersDistinctBy { Loan Import Equity ChangeRequestMaker ChangeRequestApprover } enum ViewCategory { Custom Predefined } enum ViewType { AssignedDataApplications ChangeRequests Loans Equities Brokers Client FundingEntities Deal } enum WorkflowCardFixedProperty { Id Name Owner Client Broker Loan LoanAmount Equity CreatedOn LastUpdate TimeInStage } enum WorkflowEventType { ADD_CARD UPDATE_CARD UPDATE_CARDS REMOVE_CARD MOVE_CARD UPDATE_STAGE UPDATE_STAGES } interface InstallmentComponentsInterface { total: Float principal: Float indexedPrincipal: Float compoundingInterest: Float interest: Float fees: [FeeDetails!] penalties: [FeeDetails!] totalFees: Float totalPenalties: Float totalTaxes: Float totalWithTaxes: Float } union ChangeRequestEntity = LoanTerms | LoanFee | LoanTransaction | OIDComponent | Loan | ChangeRequestActionRecord union DataApplicationField = DataApplicationInputField | DataApplicationStaticField union ImportEntity = Loan | LoanTerms | LoanTransaction | ExpectedRepayment | ExpectedRepaymentUpdate | Disbursement | Equity | EquityValuation | OIDComponent | AgingAnalysisHistory | ExpectedDeployment | Investment | Client | LoanFee | LoanValuation | FundingEntityTransaction | LoanFundingOidComponent union InvestmentTarget = Loan | Equity | InvestmentEntity union LoanEquityAllocation = MultiLoanEquityAllocation | EquityAllocation union SearchResult = Client | Loan | Equity | InvestmentEntity | FundingEntity | LoanFunding "The entity a statement process record is generated for. Resolves to the concrete type matching the process `entityType`." union StatementProcessEntity = Loan | Client | FundingEntity | LoanFunding union UnifiedDataApplication = GenericDataApplication | DataApplication union WorkflowEvent = WorkflowEventAddCard | WorkflowEventUpdateCard | WorkflowEventRemoveCard | WorkflowEventMoveCard | WorkflowEventUpdateStages | WorkflowEventUpdateStage | WorkflowEventUpdateCards input AccountInfoInput { logoKey: String contactEmail: String defaultColor: String } input AdminGlobalSettingsInput { flags: FlagsGlobalSettingsInput limits: GlobalSettingsLimitsInput loanApprovedAmountValidationThreshold: Float metabase: MetabaseGlobalSettingsInput historicalKPIsCalculationDay: HistoricalKPIsCalculationDay ratesProviderCredentials: RatesProviderCredentialsInput } input AgingHistoryCohortInput { numberOfDays: Int total: InstallmentComponentsInput } input AmortizationDefinitionInput { id: ID type: AmortizationDefinitionRepaymentsType! date: Date percentageOfAmountToAmortize: Float fixedRepaymentAmount: Float amortizationType: AmortizationTypeForDefinition repaymentFrequency: FrequencyInput } input ApproveLoanByRefIdInput { loanId: ID loanRefId: ID approvedOnDate: Date approvedLoanAmount: Float note: String disbursementData: [DisbursementDataInput!] activateLoan: Boolean } input ApproveLoanInput { loanId: ID! approvedOnDate: Date! approvedLoanAmount: Float note: String disbursementData: [DisbursementDataInput!] investments: [InvestmentInput!] skipRecalculateParentSchedule: Boolean activateLoan: Boolean } input AssignEquityFundingSourcesInput { equityId: ID! fundingSources: [InvestmentInput!]! note: String } input AssignLoanFundingSourcesInput { loanId: ID! fundingSource: [InvestmentInput!] } input AuditsFilterInput { entityType: [AuditEntityType!] entityId: ID searchString: String action: [AuditActionType!] createdAtStart: Date createdAtEnd: Date } input BankDetailsInput { bankName: String branch: String bankAddress: String accountNumber: String accountName: String accountType: String iban: String swift: String } input BloombergCredentialsInput { clientId: String! clientSecret: String catalogId: String! timeZone: String! } input BrokersFilterInput { searchString: String distinctBy: BrokersDistinctBy } input CalculatedAvailableDisbursementAmountInput { loanId: ID! date: Date! includeDraftChanges: Boolean } input ChangeRequestCheckerUpdateInput { id: ID! makerId: ID approvers: [ID!] } input ChangeRequestFilterInput { showMyRequests: Boolean searchString: String status: [ChangeRequestStatus!] changeTypes: [ChangeRequestChangeType!] loanId: ID clientId: ID makerId: ID approverId: ID createdOnFrom: DateTime createdOnTo: DateTime approvedOnFrom: DateTime approvedOnTo: DateTime } input ChangeRequestMakerUpdateInput { id: ID! approvers: [ID!] description: String } input ClientsFilterInput { searchString: String inactiveOnly: Boolean currentCommitmentGreaterThan: Float outstandingBalanceGreaterThan: Float totalOverdueGreaterThan: Float nextPayment: PeriodInput lastPayment: PeriodInput submissionDate: PeriodInput distinctBy: ClientsDistinctBy boardId: ID } input ClientsSortByInput { field: ClientSortByFieldEnum! desc: Boolean! } input CloseInvestmentEntityInput { id: ID! closeDate: Date! } input CloseLoanInput { loanId: ID! closingDate: Date note: String } input CompleteUserOnboardingInput { userId: ID! verificationCode: String! } input CreateBrokerInput { name: String! email: String! mobileNumber: String } input CreateClientInput { type: ClientType! identificationNumber: String firstName: String lastName: String companyName: String email: String mobileNumber: String } input CreateDataApplicationFromGenericInput { clientEmail: String! clientFirstName: String clientLastName: String clientCompanyName: String brokerEmail: String brokerName: String emailBorrowerFormToClient: Boolean } input CreateDataApplicationInput { templateId: ID! clientIds: [ID]! brokerId: ID workflowCardId: ID showWorkflowCardStatus: Boolean emailApplicationToClient: Boolean emailApplicationToBroker: Boolean emailTitle: String emailBody: String expiredAfterDays: Int } input CreateDealInput { name: String originationDate: DateTime } input CreateDynamicPropertyInput { name: String! type: DynamicPropertyType! entity: DynamicPropertyEntityType! entityId: ID required: Boolean options: [String!] relationType: DynamicPropertyRelationType relationKeyPropertyId: ID relationPropertyTableId: ID position: Int locked: Boolean } input CreateDynamicTableInput { type: DynamicEntityType! name: String! group: String columns: [CreateDynamicPropertyInput!] locked: Boolean } input CreateEquityAllocationInput { loanId: ID! date: Date! currency: Currency! numberOfUnits: Float! fmv: Float! note: String createOidComponent: Boolean equityId: ID equityType: EquityType equityName: String equityCurrency: Currency } input CreateEquityTransactionInput { equityId: ID! type: EquityTransactionType! date: Date! currency: Currency! rateToBaseCurrency: Float pricePerUnit: Float numberOfUnits: Float total: Float description: String } input CreateEquityValuationInput { equityId: ID! type: String date: Date! currency: Currency! pricePerUnit: Float totalPrice: Float totalIssuedUnits: Float description: String } input CreateFileEntryInput { "The ID of the owning entity" entityId: ID! "The type of the owning entity" entityType: FileEntryEntityType! "Display name of the file or folder" name: String! "Parent folder ID. Null to place at the root level of the entity." parentId: ID "True to create a folder, false to create a file" isFolder: Boolean "S3 storage key from the upload URL response. Required for files, omit for folders." storageKey: String "File size in bytes. Null for folders." sizeInBytes: Int "If true, triggers automatic data extraction after the file is created (e.g. for Deal documents)" shouldExtractData: Boolean } input CreateFundingEntityInput { name: String! currency: Currency! } input CreateGenericDataApplicationInput { templateId: ID! isBrokerMode: Boolean workflowStageId: ID showWorkflowCardStatus: Boolean emailTitle: String emailBody: String emailApplicationToClient: Boolean } input CreateInvestmentEntityInput { creationDate: Date! name: String! type: String identificationNumber: ID address: String currency: Currency isManaged: Boolean logoKey: String legalName: String statementDisplayName: String trusteesOrDirectors: String } input CreateLoanValuationInput { loanId: ID loanFundingId: ID date: Date! valuation: Float! currency: Currency! methodology: String note: String } input CreateNoteInput { relatedEntityId: ID! relatedEntityType: NoteEntityType! text: String! relatedFieldId: String } input CreateUserInput { sendPasswordToEmail: Boolean username: String firstname: String lastname: String email: String officeId: ID password: String repeatPassword: String roles: [String] } input CreateWorkflowBoardInput { title: String! } input CreateWorkflowCardInput { id: ID stageId: ID! title: String! clientId: ID brokerId: ID ownerId: ID positionOption: PositionOption } input CreateWorkflowStageInput { id: ID! boardId: ID! title: String! } input CurrencySettingInput { currency: Currency! rateToBase: Float! } input DataApplicationFileInput { "The file name to upload" name: String! "The file size in bytes" sizeInBytes: Int! } input DataApplicationInputFieldInput { label: String! description: String type: DataApplicationInputFieldType! position: Int! sectionKey: String! required: Boolean! options: [String!] placeholder: String displayCondition: DisplayConditionInput tableColumns: [DataApplicationInputFieldInput!] multipleFiles: Boolean relatedEntityField: DataApplicationRelatedEntityFieldInput numberNoComma: Boolean } input DataApplicationNotificationsInput { remindProspectOnNoCompletion: ReminderSettingInput remindLenderOnNoCompletion: ReminderSettingInput notifyLenderOnSubmission: Boolean notifyLenderOnFirstProspectEngagement: Boolean } input DataApplicationRelatedEntityFieldInput { entityType: DataApplicationRelatedEntityType! fieldName: String tableId: ID workflowCardDynamicPropertyId: ID } input DataApplicationSectionInput { position: Int! key: String! label: String! } input DataApplicationStaticFieldInput { type: DataApplicationStaticFieldType! position: Int! sectionKey: String! body: String imageUrl: String } input DataApplicationTemplateInput { name: String! inputFields: [DataApplicationInputFieldInput!]! staticFields: [DataApplicationStaticFieldInput!]! sections: [DataApplicationSectionInput!]! translations: DataApplicationTemplateTranslationsInput mainColor: String logoKey: String bannerImageKey: String notificationsSettings: DataApplicationNotificationsInput expiredAfterDays: Int emailTitle: String emailBody: String emailApplicationToClient: Boolean } input DataApplicationTemplateTranslationsInput { description: String brokerDetails: String brokerName: String brokerEmail: String } input DataApplicationTemplatesFilterInput { searchString: String distinctBy: DataApplicationTemplatesDistinctBy boardId: ID } input DataApplicationsFilterInput { searchString: String status: [DataApplicationStatus] archived: Boolean createdDateAfter: Date createdDateBefore: Date clientIds: [String] brokerIds: [String] templateIds: [String] } input DaysInEveryInput { daysInEveryType: DaysInEveryEnum daysInEveryNumber: Int } "Defines how to calculate daily rate. Applied only when defining a yearly or monthly rate." input DaysSettingsInput { "Date from which to apply this setting" startDate: Date "How many days should be in a year. Actual, 365 or 360" daysInYear: DaysInYear "How many days should be in a month. Actual or 30" daysInMonth: DaysInMonth effectiveDate: Date } input DealTermFeedbackInput { action: String! termId: String category: String label: String value: String excerpt: String page: Int correction: String newValue: String } input DealsFilterInput { status: [DealStatus!] clientIds: [ID!] fundingEntityIds: [ID!] loanProductIds: [ID!] createdByUserIds: [ID!] commitmentGreaterThan: Float commitmentLessThan: Float } input DealsSortByInput { field: DealSortByFieldEnum! desc: Boolean! } input DebtSellComponentInput { name: DebtSellComponentType! sellerPreSell: Float sellerPostSell: Float buyerPostSell: Float note: String displayName: String relatedEntityId: ID } input DefaultEventInput { startDate: Date! startNote: String endDate: Date endNote: String } input DeleteExpectedRepaymentInput { date: Date! effectiveFrom: Date note: String } input DeleteWorkflowCardOptions { archiveClient: Boolean deleteBroker: Boolean archiveBorrowerFormIds: [ID!] } input DisbursementDataInput { id: ID date: Date amount: Float deductions: InstallmentComponentsInput } "Disbursement input" input DisbursementInput { "**Optional** - Pass ID for update only" id: ID "Amount to disburse" amount: Float! "Date of disbursement" date: Date! "Define deductions from the disbursed amounts such as upfront fees, etc." deductions: InstallmentComponentsInput } input DisplayConditionInput { fieldPosition: Int! conditionType: DisplayConditionType! value: String } input DocumentTemplateInput { id: ID label: String! type: DocTemplateType! docxTemplateKey: String } input DraftScheduleDueRowsInput { rowsRange: LoanScheduleDueRowsRangeInput } input DuplicateLoanInput { sourceLoanId: ID! name: String! refId: String clientId: ID! parentLoanId: ID parentGroupLoanId: ID loanStartDate: Date loanAmount: Float duplicateBroker: Boolean duplicateNotes: Boolean duplicateDocuments: Boolean duplicateAdditonalDetails: Boolean duplicateDynamicTables: [ID] } input EditDataOverrideTransactionInput { loanId: ID loanFundingId: ID distribution: InstallmentComponentsInput totalDistribution: Float date: Date effectiveDate: Date type: TransactionType! note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency rateToBaseCurrency: Float isPrepayment: Boolean duesCalculationMethod: DuesCalculationMethod capitalizationComponent: CapitalizationComponent override: OverrideScheduleRowInput } input EditUserInput { firstname: String lastname: String password: String repeatPassword: String roles: [String] } input EquitiesFilterInput { searchString: String status: [AssetStatus!] clientIds: [ID!] equityClass: String type: [EquityType] acquisitionDate: PeriodInput holdingValueGreaterThan: Float costGreaterThan: Float totalExercisePriceGreaterThan: Float ownerIds: [ID] } input EquityInput { type: EquityType! name: String! refId: String equityClass: String investmentRights: String expectedNumberOfUnits: Float expectedPurchaseCurrency: Currency! expectedPurchaseDate: Date expectedPurchasePricePerUnit: Float expectedPurchaseTotalPrice: Float expectedSellDate: Date expectedSellPricePerUnit: Float expectedSellTotalPrice: Float valuationType: String valuationDate: Date valuationPricePerUnit: Float valuationTotalPrice: Float valuationTotalIssuedUnits: Float expirationDate: Date expectedExerciseDate: Date exercisePricePerUnit: Float exerciseTotalPrice: Float clientId: ID loanId: ID fundingSources: [InvestmentInput!] } input ExerciseEquityInput { id: ID! closeEquity: Boolean! exerciseDate: Date! exercisePricePerUnit: Float! currency: Currency! numberOfUnits: Float! shareId: ID sellTransaction: ExerciseEquitySellInput } input ExerciseEquitySellInput { sellDate: Date! sellPricePerUnit: Float! sellNumberOfUnits: Float! sellDescription: String } input ExpectedDeploymentInput { "Relevant loan ID" loanId: ID "Relevant loan reference ID" loanRefId: ID "Date of the expected deployment" date: Date! "Loan's commitment amount, same as approved amount" commitment: Float! "expected amount to be deployed [deployment = disbursements - repayments]" deployment: Float! } input ExpectedLoanFundingAllocationInput { loanFundingId: ID! amount: Float! fundingEntityId: ID fundingEntityTransactionAmount: Float fundingEntityTransactionDate: Date } "Expected repayment input" input ExpectedRepaymentInput { id: ID "Date of expected repayment" date: Date "Repayment effective date - the date for which the repayment is taken into account of outstanding amounts" effectiveDate: Date "Repayment components" repaymentComponents: InstallmentComponentsInput } input ExpectedRepaymentUpdateInput { date: Date! effectiveDate: Date repaymentComponents: InstallmentComponentsInput effectiveFrom: Date note: String } "Fee repayment input" input FeeDetailsInput { feeId: Int amount: Float! } input FileEntriesFilterInput { "The entity ID to get file entries for" entityId: ID! "The type of the entity" entityType: FileEntryEntityType! "If true, also returns file entries for related entities (e.g. a Loan's Client, Equity, etc.)" includeRelatedEntities: Boolean } input FileEntryUploadUrlInput { "The file name" name: String! "The file size in bytes" sizeInBytes: Int! } input FlagsGlobalSettingsInput { enableLoanManagementModule: Boolean enableDataApplicationModule: Boolean enableDataApplicationEmails: Boolean enableInvestorsModule: Boolean enableFundingSourcesModule: Boolean enableEquityModule: Boolean enableEquityAllocations: Boolean enableWorkflows: Boolean enableDataTablesScreen: Boolean enableGenerateStatements: Boolean enableStatementProcessModule: Boolean enableLoanGroups: Boolean calculateKPIsWithEquity: Boolean enableExpectedSchedule: Boolean enableSaveExpectedScheduleDueRows: Boolean enableSaveMultiLoanDueRows: Boolean scheduleSortBy: ScheduleSortOption enableLoanSelectionOnImport: Boolean enableMultiTrancheExpectedSchedule: Boolean enableLoanEffectiveRate: Boolean equityCostCalcMethod: CostCalcMethod statementActionFields: [StatementActionOption!] restructureEffectiveRateOnInterestBaseRateChangeOnly: Boolean enableLoanValuations: Boolean allowFutureRates: Boolean enableLoanDeposits: Boolean paydownDecreaseRemainingCostProportionately: Boolean enableDetailedFundingSourcesDebtSell: Boolean recalculateLoansOnFloatingRateUpdate: Boolean makerCheckerModuleEnabled: Boolean includeHypercoreAdminsInUserLists: Boolean strictMakerChecker: Boolean enableDefaultDashboard: Boolean accelerateEOTFeeIncomeRecognition: Boolean mcpAccessLevel: McpAccessLevel enableDealOnboardingModule: Boolean setGaapOidToNoAccrualWhenNoUnamortizedOID: Boolean hasCMEDailyRatesAccess: Boolean } input FloatingRateInput { id: ID name: String! floatingRateProvider: FloatingRateProvider providerRateIdentifier: String additionalIdentifier: String principalIndex: Boolean exchangeRate: Boolean } input FloatingRateNameInput { id: ID name: String! } input FloatingRateValueInput { date: Date! value: Float! } input FloatingRateValuesInput { upsert: [FloatingRateValueInput!] delete: [Date!] } input FormDataInput { fieldId: ID! value: JSON } input FrequencyInput { "Only `relativeStartDate` or `startDate` can be defined" relativeStartDate: RelativeDateInput "Only `relativeStartDate` or `startDate` can be defined" startDate: Date endDate: Date includeStartDate: Boolean includeEndDate: Boolean every: FrequencyEveryEnum everyMultiplier: Int daysInEvery: DaysInEveryInput on: DaysInEveryEnum daysOffset: Int applyNonWorkingDaysStrategy: Boolean repetitions: Int includeFirstFreq: Boolean specificDates: [Date!] } input FundingEntitiesFilterInput { searchString: String excludeIds: [ID!] activeLoansGreaterThan: Int utilizationRateMin: Float utilizationRateMax: Float committedGreaterThan: Float deployedGreaterThan: Float totalReturnedGreaterThan: Float expectedTotalValueGreaterThan: Float irrGreaterThan: Float expectedIrrGreaterThan: Float tvpiGreaterThan: Float expectedTvpiGreaterThan: Float dpiGreaterThan: Float inactiveOnly: Boolean } input FundingEntitiesSortByInput { field: FundingEntitySortByFieldEnum! desc: Boolean! } input FundingEntityTransactionInput { type: TransactionType canceled: Boolean cancellationDate: Date distribution: InstallmentComponentsInput date: Date! effectiveDate: Date note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency rateToBaseCurrency: Float fundingEntityId: ID! loanFundingId: ID loanFundingTransactionId: ID } input FundingSourcesAllocationDraftInput { id: ID assetId: ID! date: Date! expectedAllocations: [ExpectedLoanFundingAllocationInput!] note: String } input GenericDataApplicationsFilterInput { searchString: String archived: Boolean templateIds: [String] createdDateAfter: Date createdDateBefore: Date } input GetDynamicTablesInput { relatedEntityType: DynamicEntityType tableType: DynamicTableType searchString: String withColumns: Boolean skip: Int limit: Int } input GetLoanRepaymentDistributionInput { loanId: ID! includeDraftChanges: Boolean date: Date! repaymentType: RepaymentType! duesCalculationMethod: DuesCalculationMethod applyExpectedRepaymentsUntilEarlyRedemption: Boolean totalDistribution: Float baseNominalPrincipal: Float distribution: InstallmentComponentsInput isPrepayment: Boolean } input GetLoanScheduleDueRowsInput { scheduleId: ID! rowsRange: LoanScheduleDueRowsRangeInput } input GetLoanSchedulePreviewDueRowsInput { loanTransactionPreviewInput: [LoanTransactionInput!] loanReschedulePreviewInput: LoanRescheduleInput loanTermsPreviewInput: LoanTermsPreviewInput loanApplicationPreviewInput: LoanApplicationPreviewInput rowsRange: LoanScheduleDueRowsRangeInput } input GlobalSettingsInput { baseCurrency: Currency dateFormat: String agingAnalysisCohorts: [Int] agingAnalysisMode: AgingAnalysisMode agingAnalysisMonthlyCohorts: Boolean workingDays: WorkingDaysInput accountInfo: AccountInfoInput statementFilesNaming: StatementFilesNamingInput makerCheckerUserEnabled: Boolean } input GlobalSettingsLimitsInput { activeLoans: Int multiCurrencyLoans: Int activeEquities: Int openEquities: Int } input GroupLoanInput { name: String! submissionDate: Date approvedAmount: Float currency: Currency description: String } input ImportAgingHistoryInput { loanId: ID loanRefId: ID date: Date! cohorts: [AgingHistoryCohortInput!]! } input ImportClientInput { clientId: ID type: ClientType identificationNumber: String firstName: String lastName: String companyName: String email: String mobileNumber: String submittedOnDate: Date description: String extraDetails: JSON } input ImportDisbursementInput { loanId: ID loanRefId: ID amount: Float! date: Date! deductions: InstallmentComponentsInput } input ImportDynamicTableRowInput { entityId: ID refId: ID rowId: ID data: JSON } input ImportEquityInput { refId: String name: String! type: EquityType! equityClass: String investmentRights: String clientId: ID! loanId: ID isActive: Boolean expectedPurchaseCurrency: Currency! expectedNumberOfUnits: Float expectedPurchaseDate: Date expectedPurchasePricePerUnit: Float expectedPurchaseTotalPrice: Float expectedSellDate: Date expectedSellPricePerUnit: Float expectedSellTotalPrice: Float valuationType: EquityValuationType valuationDate: Date valuationPricePerUnit: Float valuationTotalPrice: Float valuationTotalIssuedUnits: Float expirationDate: Date expectedExerciseDate: Date exercisePricePerUnit: Float exerciseTotalPrice: Float extraDetails: JSON } input ImportEquityValuationInput { equityId: ID equityRefId: ID type: String date: Date pricePerUnit: Float totalPrice: Float totalIssuedUnits: Float description: String } input ImportExpectedRepaymentUpdateInput { loanId: ID loanRefId: ID date: Date! effectiveDate: Date repaymentComponents: InstallmentComponentsInput effectiveFrom: Date note: String } input ImportExpectedTransactionsInput { expectedRepaymentUpdates: [ImportExpectedRepaymentUpdateInput!] expectedDisbursements: [ImportDisbursementInput!] importMode: ImportMode } input ImportFundingEntityInput { fundingEntityId: ID name: String currency: Currency bankDetails: BankDetailsInput extraDetails: JSON } input ImportFundingEntityTransactionInput { fundingEntityId: ID loanFundingId: ID date: Date type: TransactionType principal: Float interest: Float compoundingInterest: Float totalFees: Float totalPenalties: Float tax: Float accountNumber: String checkNumber: String routingCode: String receiptNumber: String bankNumber: String note: String } input ImportLoanFeeInput { feeId: ID loanId: ID loanRefId: ID name: String value: Float secondaryValue: Float timeIntervalToEffectiveValue: TimeIntervalInput ratePer: FrequencyEveryEnum dueDate: Date chargeDate: Date calculationType: FeeCalculation repaymentTiming: FeeTiming chargeTiming: FeeTiming isPenalty: Boolean isRevolvingPeriodOnly: Boolean repaymentFrequency: FrequencyInput chargeFrequency: FrequencyInput penaltyGrace: PeriodInput description: String chargePeriod: PeriodInput isCompounding: Boolean compoundingFrequency: FrequencyInput compoundingFeeCapitalizationComponent: CapitalizationComponent duesCalculationMethod: DuesCalculationMethod capitalized: Boolean minAmount: Float accrualFrequency: FrequencyInput oidSettings: FeeOidSettings oidRecognitionStartDate: Date createOIDComponent: Boolean isDeposit: Boolean depositPaysFor: DepositPaysForOptions depositConditions: DepositConditions depositNumberOfRepayments: Int fixedRepaymentAmount: Float allocateToLoanFundings: Boolean advanceRepayment: Boolean valueUpdates: [InterestUpdateInput!] "Deprecated - use charge period instead" feePeriod: PeriodInput "Deprecated - use repaymentTiming and chargeTiming instead" timing: FeeTiming } input ImportLoanFundingFeeAllocationInput { loanFundingId: ID loanFeeId: ID allocated: Boolean allocationType: LoanFundingFeeAllocationType value: Float } input ImportLoanFundingOIDComponentAllocationInput { loanFundingId: ID loanComponentId: ID allocated: Boolean allocationType: OidComponentAllocationType allocationValue: Float } input ImportLoanFundingSourcesInput { loanRefId: ID loanId: ID "Investment entity that this investment is associated with" relatedInvestmentEntityId: ID! "Date of investment" date: Date "Amount committed to the investment" commitment: Float! "Currency of the investment" currency: Currency } input ImportLoanInfoInput { loanId: ID loanRefId: ID newRefId: ID groupId: ID brokerId: ID clientId: ID ownerId: ID purpose: String name: String description: String contractClosingDate: Date } input ImportLoanInput { refId: ID submissionDate: Date clientRefId: ID clientId: ID parentLoanRefId: ID loanProductId: ID interestRateSettings: InterestRateSettingsInput compoundingInterestRateSettings: InterestRateSettingsInput principalIndexRateSettings: InterestRateSettingsInput interestType: InterestType fixedRepaymentAmount: Float proposedPrincipal: Float approvedPrincipalInBaseCurrency: Float disbursements: [DisbursementInput!] daysSettings: [DaysSettingsInput!] partialPeriodDaysInYear: Int revolvingPeriod: PeriodInput principalRepaymentFrequency: FrequencyInput interestRepaymentFrequency: FrequencyInput interestAccrualFrequency: FrequencyInput compoundingInterestFrequency: FrequencyInput compoundingInterestRepaymentFrequency: FrequencyInput principalGrace: [PeriodInput!] interestGrace: [PeriodInput!] compoundingInterestGrace: [PeriodInput!] fees: [LoanFeeInput!] loanPurpose: String isRevolving: Boolean loanTypeName: String currency: Currency baseCurrency: Currency amortizationType: AmortizationType taxRules: TaxRulesInput oidTerms: OIDTermsInput expectedRepayments: [ExpectedRepaymentInput!] multiLoan: Boolean name: String description: String group: String duesCalculationMethod: DuesCalculationMethod disableInterestAfterLoanEndDate: Boolean interestNotRelativeToCompounding: Boolean compoundingInterestUpdates: [InterestUpdateInput!] principalIndexUpdates: [InterestUpdateInput!] exchangeRateUpdates: [InterestUpdateInput!] interestUpdates: [InterestUpdateInput!] restructureRepaymentsAutomatically: Boolean expectedRepaymentsCappedByRelevantDues: Boolean payOutstandingInterestOnLastRepayment: Boolean advanceRepaymentsAtStartOfPeriod: Boolean advanceInterestRepaymentsAtStartOfPeriod: Boolean advanceSimpleInterestRepaymentsAtStartOfPeriod: Boolean updateCompoundingOutstandingOnTransaction: Boolean capitalizeOutstandingCompounding: Boolean capitalizeCompoundingIntoPrincipal: Boolean expRepaymentsAffectOutstandingAfterLastTransaction: Boolean applyEarlyRedemptionFeesBeforeNegativeOutstanding: Boolean minDaysToFirstRepayment: Int disbursementDayInMonthForRepaymentsDelay: Int noOutstandingResetOnEarlyRedemption: Boolean principalIndexDeterminedOnNextRepayment: Boolean paymentOnNonWorkingDay: PaymentOnNonWorkingDaySettings holidaysCalendar: String repaymentStrategy: [InstallmentComponentType!] capitalizationComponent: CapitalizationComponent deductDisbursementFees: Boolean deductAdvanceSimpleInterestRepaymentFromDisbursement: Boolean extraDetails: JSON interestPaymentRelativeToPrincipalPayment: Boolean principalAmortizationDeterminationEvent: PrincipalAmortizationDeterminationEvent outstandingCompoundingUpdatesPerDisbursement: Boolean showExpectedDisbursements: Boolean deductRepaymentOnDisbursementDate: Boolean skipOverdueCalculation: Boolean maturityDate: Date commitmentExpirationDate: Date decreasedCompoundingPaymentLimit: Float decreasedCompoundingPaymentPercentage: Float interestFloatDays: Int minimumBalanceForInterestAccrual: Float interestEffectiveDateDelayInDays: Int interestEffectiveDateDelayByWorkingDays: Boolean compoundingInterestEffectiveDateDelayInDays: Int compoundingInterestEffectiveDateDelayByWorkingDays: Boolean compoundingInterestNotCapitalized: Boolean fundingSourcesPrincipalRepaymentDelay: TimeIntervalInput fundingSourcesNumberOfDelayedPrincipalRepayments: Int rateDeterminationStartsBeforeLoanStartDate: Boolean disableFutureRateDetermination: Boolean addOutstandingCompoundingToUtilizedPrincipal: Boolean disableFsAllocationOfFutureRepaymentsPaidFromDeposit: Boolean } input ImportLoanTermsInput { loanId: ID loanRefId: ID date: Date interestRateSettings: InterestRateSettingsInput compoundingInterestRateSettings: InterestRateSettingsInput principalIndexRateSettings: InterestRateSettingsInput interestType: InterestType fixedRepaymentAmount: Float approvedPrincipal: Float approvedPrincipalInBaseCurrency: Float disbursements: [DisbursementInput!] daysSettings: [DaysSettingsInput!] partialPeriodDaysInYear: Int revolvingPeriod: PeriodInput principalRepaymentFrequency: FrequencyInput interestRepaymentFrequency: FrequencyInput interestAccrualFrequency: FrequencyInput compoundingInterestFrequency: FrequencyInput compoundingInterestRepaymentFrequency: FrequencyInput principalGrace: [PeriodInput!] interestGrace: [PeriodInput!] compoundingInterestGrace: [PeriodInput!] isRevolving: Boolean amortizationType: AmortizationType duesCalculationMethod: DuesCalculationMethod disableInterestAfterLoanEndDate: Boolean interestNotRelativeToCompounding: Boolean compoundingInterestUpdates: [InterestUpdateInput!] principalIndexUpdates: [InterestUpdateInput!] exchangeRateUpdates: [InterestUpdateInput!] interestUpdates: [InterestUpdateInput!] restructureRepaymentsAutomatically: Boolean expectedRepaymentsCappedByRelevantDues: Boolean payOutstandingInterestOnLastRepayment: Boolean advanceRepaymentsAtStartOfPeriod: Boolean advanceInterestRepaymentsAtStartOfPeriod: Boolean advanceSimpleInterestRepaymentsAtStartOfPeriod: Boolean updateCompoundingOutstandingOnTransaction: Boolean capitalizeOutstandingCompounding: Boolean capitalizeCompoundingIntoPrincipal: Boolean expRepaymentsAffectOutstandingAfterLastTransaction: Boolean applyEarlyRedemptionFeesBeforeNegativeOutstanding: Boolean minDaysToFirstRepayment: Int disbursementDayInMonthForRepaymentsDelay: Int noOutstandingResetOnEarlyRedemption: Boolean principalIndexDeterminedOnNextRepayment: Boolean paymentOnNonWorkingDay: PaymentOnNonWorkingDaySettings holidaysCalendar: String repaymentStrategy: [InstallmentComponentType!] capitalizationComponent: CapitalizationComponent deductDisbursementFees: Boolean deductAdvanceSimpleInterestRepaymentFromDisbursement: Boolean interestPaymentRelativeToPrincipalPayment: Boolean principalAmortizationDeterminationEvent: PrincipalAmortizationDeterminationEvent outstandingCompoundingUpdatesPerDisbursement: Boolean maturityDate: Date commitmentExpirationDate: Date decreasedCompoundingPaymentLimit: Float decreasedCompoundingPaymentPercentage: Float interestFloatDays: Int minimumBalanceForInterestAccrual: Float interestEffectiveDateDelayInDays: Int interestEffectiveDateDelayByWorkingDays: Boolean compoundingInterestEffectiveDateDelayInDays: Int compoundingInterestEffectiveDateDelayByWorkingDays: Boolean compoundingInterestNotCapitalized: Boolean fundingSourcesPrincipalRepaymentDelay: TimeIntervalInput fundingSourcesNumberOfDelayedPrincipalRepayments: Int } input ImportLoanTransactionHistoryInput { "Optional. Use this field to update an existing transaction - leave blank to create a new one." id: ID loanId: ID loanRefId: ID loanFundingId: ID "**Required** - `totalDistribution` or `distribution`" distribution: InstallmentComponentsInput "`totalDistribution` is distributed by the loan repayment strategy" totalDistribution: Float date: Date effectiveDate: Date type: TransactionType note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency rateToBaseCurrency: Float earlyRedemption: Boolean isPrepayment: Boolean duesCalculationMethod: DuesCalculationMethod capitalizationComponent: CapitalizationComponent fundingSourcesAllocationDraft: FundingSourcesAllocationDraftInput "Set to override schedule calculated values (like outstanding) with your custom values" override: OverrideScheduleRowInput } input ImportLoanTransactionInput { "Optional. Use this field to update an existing transaction - leave blank to create a new one." id: ID loanId: ID loanRefId: ID loanFundingId: ID "**Required** - `totalDistribution` or `distribution`" distribution: InstallmentComponentsInput "`totalDistribution` is distributed by the loan repayment strategy" totalDistribution: Float date: Date effectiveDate: Date type: TransactionType note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency rateToBaseCurrency: Float earlyRedemption: Boolean isPrepayment: Boolean duesCalculationMethod: DuesCalculationMethod capitalizationComponent: CapitalizationComponent fundingSourcesAllocationDraft: FundingSourcesAllocationDraftInput } input ImportLoanValuationInput { loanId: ID loanRefId: ID loanFundingId: ID date: Date! valuation: Float! methodology: String note: String } input ImportOIDComponentInput { id: ID loanId: ID loanRefId: ID name: String date: Date value: Float type: OIDComponentType description: String allocateToLoanFundings: Boolean decreaseRemainingCost: Boolean initialAmortizedAmount: Float } input ImportOIDHistoryOverrideInput { loanId: ID loanRefId: ID loanFundingId: ID date: Date! effectiveDate: Date amount: Float rate: Float totalWithInterest: Float remainingCost: Float breakdown: [OIDBreakdownRowInput!] } input ImportRecordInput { entityType: ImportRecordEntityType entityId: ID entityName: String primaryEntityType: ImportRecordEntityType primaryEntityId: ID primaryEntityName: String status: ImportRecordStatus! rawData: JSON! error: String disableRevert: Boolean } "Input for loan import validation" input ImportValidationInput { "Date of outstanding values for validation" date: Date "Expected outstanding principal in the imported loan on the specified date" outstandingPrincipal: Float "Expected outstanding interest in the imported loan on the specified date" outstandingInterest: Float "Expected outstanding compounding interest in the imported loan on the specified date" outstandingCompoundingInterest: Float "Expected paid principal in the imported loan" paidPrincipal: Float "Expected paid interest in the imported loan" paidInterest: Float "Expected paid compounding interest in the imported loan" paidCompoundingInterest: Float } input ImportsFilterInput { status: [String] types: [ImportType] createdAt: PeriodInput createdBy: [ID!] } input InitCloseLoansInBulkInput { loanIds: [ID!] filter: LoansFilterInput date: Date! note: String } input InitDeleteLoansInBulkInput { loanIds: [ID!] filter: LoansFilterInput note: String } input InitEarlyRedemptionInBulkInput { loanIds: [ID!] filter: LoansFilterInput redemptionDate: Date! totalRedeemedAmount: Float distributionMethod: EarlyRedemptionDistributionMethod repaymentBreakdownStrategy: EarlyRedemptionRepaymentBreakdownStrategy note: String applyTransactionAfterDailyCharges: Boolean assumeExpectedRepaymentPaid: Boolean loanCloserBehavior: EarlyRedemptionInBulkLoanClosureBehavior! } input InitMakeRepaymentsInBulkInput { loanIds: [ID!] filter: LoansFilterInput fromDate: Date! toDate: Date! note: String applyTransactionAfterDailyCharges: Boolean repaymentsFrom: MakeRepaymentsInBulkRepaymentsFrom! loanClosureBehavior: MakeRepaymentsInBulkLoanClosureBehavior! } "Repayment components input" input InstallmentComponentsInput { "Principal that was paid" principal: Float "Principal index that was paid - should be used only for importing historical data" indexedPrincipal: Float "Compounding interest that was paid" compoundingInterest: Float "Accrued (uncapitalized) compounding interest" accruedCompoundingInterest: Float "Interest that was paid" interest: Float "Array of fees that was paid" fees: [FeeDetailsInput!] "Array of penalties that was paid" penalties: [FeeDetailsInput!] "Optional - instead of specifying each fee and it's amount separately, you can specify the total amount of fees to be paid. This will try to apply the amount to the outstanding fees first, than by order of the fees" totalFees: Float "Optional - instead of specifying each penalty and it's amount separately, you can specify the total amount of penalties to be paid. This will try to apply the amount to the outstanding penalties first, than by order of the penalties" totalPenalties: Float "Total taxes amount that was paid" totalTaxes: Float } "Interest rate settings for regular or compounding interest rates" input InterestRateSettingsInput { "Loan's floating interest rate. If not specified, the loan is considered to be a fixed rate loan." floatingRateId: Int "When floating rate is used, the minimum threshold of the rate value." minimumRate: Float "When floating rate is used, the maximum threshold of the rate value." maximumRate: Float "When floating rate is used, define margin to be used in addition to the floating rate." margin: Float "When floating rate is used, define how often the floating rate is updated." floatingRateDeterminationFrequency: FrequencyInput "Loan's fixed interest rate. If not specified, the loan is considered to be a floating rate loan." fixedRate: Float "Defines the time period that the rate is applied for. E.g. yearly rate, monthly, weekly or daily" ratePer: FrequencyEveryEnum "Defines a delay (in days) between the loan floating interest rate and the actual floating interest rate" interestEffectiveDateDelayInDays: Int "Determines if the effective date delay will be by working days or calendar days" interestEffectiveDateDelayByWorkingDays: Boolean decreaseThreshold: Float effectiveDecreaseOnThreshold: Float } input InterestUpdateInput { startDate: Date! endDate: Date newRate: Float newMargin: Float newMinimumRate: Float newMaximumRate: Float effectiveDate: Date } input InvestmentEntitiesFilterInput { searchString: String includeClosed: Boolean } input InvestmentInput { "Optional - use only if you want to update an existing investment" id: ID "Investment entity that this investment is associated with" relatedInvestmentEntityId: ID! "Date of investment" date: Date "Amount committed to the investment" commitment: Float! "Currency of the investment" currency: Currency } input InvestmentTransactionInput { amount: Float! transactionDate: Date! currency: Currency note: String } "Loan application mutation input" input LoanApplicationInput { "Loan name used for easier identification of the loan on UI" name: String "Loan's parent group loan" group: ID "Loan purpose used mainly for reporting purposes and is configurable on loan product" loanPurpose: String "Client who is applying for the loan" clientId: ID "Card that is related to the loan" cardId: ID "Loan product to be used for the loan" loanProductId: ID "Define loan product name" loanTypeName: String "Application submission date" submissionDate: Date "Total amount of the loan. This is only the proposed or requested amount. Actual disbursement amount may be different." proposedPrincipal: Float "Total amount of the loan in the base currency" approvedPrincipalInBaseCurrency: Float "Net amount of the loan" netPrincipal: Float "Loan currency to be used" currency: Currency "Loan's base currency" baseCurrency: Currency "Array of loan's expected disbursements. Actual disbursements may differ." disbursements: [DisbursementInput!] "Loan's method of interest calculation. Available options are: `Flat` or `DecliningBalance`" interestType: InterestType "Regular interest rate settings" interestRateSettings: InterestRateSettingsInput "Compounding interest rate settings" compoundingInterestRateSettings: InterestRateSettingsInput "Principal index rate settings" principalIndexRateSettings: InterestRateSettingsInput "Array of loan's fees to be applied" fees: [LoanFeeInput!] "Array of definitions of how to calculate daily rate. Applied only when defining a yearly or monthly rate." daysSettings: [DaysSettingsInput!] "Sets the default days in year on partial periods" partialPeriodDaysInYear: Int "Amortization type to be used for the loan. Available options are: `EqualPrincipalPayments` or `EqualInstallments`." amortizationType: AmortizationType "For Equal Installments, define a fixed repayment amount instead of using the default calculated PMT." fixedRepaymentAmount: Float "Define a revolving period for a loan. Applicable only when `isRevolving` is set to `true`." revolvingPeriod: PeriodInput "Define repayment frequency for principal component. Default is once a month at the 1st of each month." principalRepaymentFrequency: FrequencyInput "Define repayment frequency for interest component. Default is once a month at the 1st of each month." interestRepaymentFrequency: FrequencyInput "Define interest accrued period" interestAccrualFrequency: FrequencyInput "Define compounding interest frequency. Default is no compounding. Applicable only when compounding interest is defined." compoundingInterestFrequency: FrequencyInput "Define repayment frequency for compounding interest component. Default is once a month at the 1st of each month. Applicable only when compounding interest is defined." compoundingInterestRepaymentFrequency: FrequencyInput "Define an array of principal grace periods." principalGrace: [PeriodInput!] "Define an array of interest grace periods." interestGrace: [PeriodInput!] "Define an array of compounding interest grace periods." compoundingInterestGrace: [PeriodInput!] "Define tax rules for the loan." taxRules: [TaxRulesInput!] "Define [Original Issue Discount](https://www.investopedia.com/terms/o/oid.asp) terms for the loan." oidTerms: OIDTermsInput "Date from which the terms will apply for OID calculation purposes." effectiveDate: Date "Define dues calculation method for the loan. This dictates for each day, if interest would be calculated based on the outstanding principal before disbursement, after disbursement or after repayment (end of day)." duesCalculationMethod: DuesCalculationMethod "Array of expected repayments to override any calculated repayments if needed." expectedRepayments: [ExpectedRepaymentInput!] "Define interest overrides. This allows you to create periods for which a different rate was applied to the loan." interestUpdates: [InterestUpdateInput!] "Define compounding interest overrides. This allows you to create periods for which a different compounding rate was applied to the loan." compoundingInterestUpdates: [InterestUpdateInput!] "Define principal index overrides. This allows you to create periods for which a different principal index was applied to the loan." principalIndexUpdates: [InterestUpdateInput!] "Define exchange rate overrides. This allows you to create periods for which a different exchange rate was applied to the loan." exchangeRateUpdates: [InterestUpdateInput!] "Define repayment strategy for the loan. This dictates how each repayment is distributed across the different components. This takes an array of installment component types for which the total repayment amount would be applied to by the order provided." repaymentStrategy: [InstallmentComponentType!] "Loan's closing date - the final day when all loan documents are signed and terms are agreed upon" contractClosingDate: Date "Define if the loan is a revolving loan. If true, a revolving period needs to be defined or the entire loan will be considered as a revolver." isRevolving: Boolean "Setting multi loan to true would allow attaching child loans to it. The approved amount of the parent loan would act as a total maximum facility for all child loans. This is used mainly to define limits on a set of loans, or as a way to aggregate multiple loans under one amortization schedules for moore complex financing." multiLoan: Boolean "If true, interest stop accumulating after original loan maturity date." disableInterestAfterLoanEndDate: Boolean "If true, interest is calculated based on the outstanding principal without taking into account compounding interest." interestNotRelativeToCompounding: Boolean "If true, repayments would restructure when repayments were missed." restructureRepaymentsAutomatically: Boolean "If true, repayments restructure would be capped to the last due amounts. This will make it so repayments would not keep growing when multiple repayments are missed." expectedRepaymentsCappedByRelevantDues: Boolean "If true, outstanding interest will be pain on last expected repayment." payOutstandingInterestOnLastRepayment: Boolean "If true, repayments would be calculated as if you are charging interest and other components upfront." advanceRepaymentsAtStartOfPeriod: Boolean "If true, interest will be charged upfront for the period." advanceInterestRepaymentsAtStartOfPeriod: Boolean "If true, only simple interest will be charged upfront for the period." advanceSimpleInterestRepaymentsAtStartOfPeriod: Boolean "If true, adds due compounding interest to the outstanding compounding interest on transaction." updateCompoundingOutstandingOnTransaction: Boolean "If true, outstanding compounding interest would be amortized as if it were principal." capitalizeOutstandingCompounding: Boolean "If true, charged compounding interest will be capitalized into principal." capitalizeCompoundingIntoPrincipal: Boolean "If true, any missed repayments after last actual transaction would be considered as if they were paid in time. This is helpful when you need to backdate repayments." expRepaymentsAffectOutstandingAfterLastTransaction: Boolean "If true, early redemption fees would be applied before negative outstanding." applyEarlyRedemptionFeesBeforeNegativeOutstanding: Boolean "If defined, repayments will be pushed to the next period if the loan start date is too close to the repayments start date." minDaysToFirstRepayment: Int "If defined, repayments will be pushed to the next period if the first disbursement date day in month equal or after disbursementDayInMonthForRepaymentsDelay." disbursementDayInMonthForRepaymentsDelay: Int "If true, loan application input properties default to the properties defined in the loan template" useTemplateDefaults: Boolean "Defines custom loan amortization when amortizationType === Custom" customPrincipalAmortization: [AmortizationDefinitionInput!] "Defines if early redemption transaction should reset outstanding to zero regardless of transaction amount" noOutstandingResetOnEarlyRedemption: Boolean "Defines if interest payments should pay accrued amount according to interest accrue period" interestPaymentsPayAccruedAmount: Boolean "Defines if amortization pays principal and interest" amortizationPaysPrincipalAndInterest: Boolean "Defines if outstanding compounding should be paid before non-capitalized compounding" payOutstandingCompoundingBeforeNonCapitalized: Boolean "Defines the minimum balance for interest accrual" minimumBalanceForInterestAccrual: Float "Defines the number of days to float interest" interestFloatDays: Int "Defines if principal index is determined on next repayment date" principalIndexDeterminedOnNextRepayment: Boolean "Defines how to handle loan repayment dates for non working days and holidays." paymentOnNonWorkingDaySettings: PaymentOnNonWorkingDaySettings "Relevant holidays calendar for `paymentOnNonWorkingDaySettings`, e.g. `US`, `IL`, `CA` (ISO country code)" holidaysCalendar: String "Defines working days for the loan. Only relevant if `paymentOnNonWorkingDaySettings` is defined" workingDays: WorkingDaysInput "Sets the default component to capitalize to when doing capitalization" capitalizationComponent: CapitalizationComponent "When set to true, fees on disbursement will be deducted from the disbursement" deductDisbursementFees: Boolean "When set to true, simple interest repayment expected on disbursement date will be deducted from the disbursement" deductAdvanceSimpleInterestRepaymentFromDisbursement: Boolean "When set to true, interest will be paid proportional to repaid principal" interestPaymentRelativeToPrincipalPayment: Boolean "Sets when to determine the outstanding principal for amortization. Default is `FirstExpectedPrincipalRepayment`" principalAmortizationDeterminationEvent: PrincipalAmortizationDeterminationEvent "Sets if the compounding frequency is calculated separately for each disbursement" outstandingCompoundingUpdatesPerDisbursement: Boolean "If true, loan's schedule will contain the expected disbursements" showExpectedDisbursements: Boolean "If true, loan's schedule deduct repayments on disbursement date" deductRepaymentOnDisbursementDate: Boolean "If true, loan calculation will not include overdue and aging" skipOverdueCalculation: Boolean "If true, use expected loan schedule for funding sources" useExpectedLoanScheduleForFundingSources: Boolean "Sets the loans maturity date" maturityDate: Date "Sets the loans commitment expiration date" commitmentExpirationDate: Date "Sets the loan's decreased compounding payment limit" decreasedCompoundingPaymentLimit: Float "Sets the loan's decreased compounding payment percentage" decreasedCompoundingPaymentPercentage: Float "If true, the compounding interest would not be capitalized" compoundingInterestNotCapitalized: Boolean "Sets the loan terms notes" termsNotes: [TermsNoteInput!] "Sets the funding sources principal repayment delay after disbursement (excluding the first disbursement)" fundingSourcesPrincipalRepaymentDelay: TimeIntervalInput "Sets the funding sources number of delayed principal repayments after disbursement (excluding the first disbursement)" fundingSourcesNumberOfDelayedPrincipalRepayments: Int "True if floating rate determination starts before loan start date" rateDeterminationStartsBeforeLoanStartDate: Boolean "If true, future rate determinations are only applied once their determination date arrives" disableFutureRateDetermination: Boolean "If true, outstanding compounding will increase the utilized principal" addOutstandingCompoundingToUtilizedPrincipal: Boolean "If true, future loan repayments will not be auto-allocated to funding sources" disableFsAllocationOfFutureRepaymentsPaidFromDeposit: Boolean "If true, unpaid expected principal payments will be added to the compounding interest overdue (and not to the principal overdue)" treatOverdueCompoundingInterestAsPrincipal: Boolean "If true, when the configured frequency day does not exist in a month, the calculated date will use the last valid day of that month instead of rolling into the next month." useLastDayOfMonthForShortMonthsInFrequency: Boolean "Deal associated with the loan" dealId: ID } input LoanApplicationPreviewInput { loanId: ID loanApplication: LoanApplicationInput! } "Defines a fee to be applied to a loan" input LoanFeeInput { id: ID name: String value: Float! secondaryValue: Float timeIntervalToEffectiveValue: TimeIntervalInput ratePer: FrequencyEveryEnum dueDate: Date chargeDate: Date calculationType: FeeCalculation! repaymentTiming: FeeTiming chargeTiming: FeeTiming isPenalty: Boolean isRevolvingPeriodOnly: Boolean repaymentFrequency: FrequencyInput chargeFrequency: FrequencyInput penaltyGrace: PeriodInput description: String chargePeriod: PeriodInput isCompounding: Boolean compoundingFrequency: FrequencyInput compoundingFeeCapitalizationComponent: CapitalizationComponent duesCalculationMethod: DuesCalculationMethod capitalized: Boolean minAmount: Float accrualFrequency: FrequencyInput oidSettings: FeeOidSettings oidRecognitionStartDate: Date createOIDComponent: Boolean valueUpdates: [InterestUpdateInput!] isDeposit: Boolean depositPaysFor: DepositPaysForOptions depositConditions: DepositConditions depositNumberOfRepayments: Int fixedRepaymentAmount: Float allocateToLoanFundings: Boolean expenseOfLoanFundings: [ID!] incomeOfLoanFundingId: ID advanceRepayment: Boolean "Deprecated - use charge period instead" feePeriod: PeriodInput "Deprecated - use repaymentTiming and chargeTiming instead" timing: FeeTiming } input LoanFeeTemplateInput { name: String value: Float timeIntervalToEffectiveValue: TimeIntervalInput ratePer: FrequencyEveryEnum dueDate: Date chargeDate: Date calculationType: FeeCalculation! repaymentTiming: FeeTiming chargeTiming: FeeTiming isPenalty: Boolean penaltyGrace: PeriodInput isRevolvingPeriodOnly: Boolean repaymentFrequency: FrequencyInput chargeFrequency: FrequencyInput description: String chargePeriod: PeriodInput isCompounding: Boolean compoundingFrequency: FrequencyInput compoundingFeeCapitalizationComponent: CapitalizationComponent duesCalculationMethod: DuesCalculationMethod capitalized: Boolean minAmount: Float accrualFrequency: FrequencyInput oidSettings: FeeOidSettings oidRecognitionStartDate: Date createOIDComponent: Boolean isDeposit: Boolean depositPaysFor: DepositPaysForOptions depositConditions: DepositConditions depositNumberOfRepayments: Int fixedRepaymentAmount: Float advanceRepayment: Boolean allocateToLoanFundings: Boolean "Deprecated - use charge period instead" feePeriod: PeriodInput "Deprecated - use repaymentTiming and chargeTiming instead" timing: FeeTiming } input LoanFundingDebtSellInput { id: ID sellerLoanFundingId: ID! buyerFundingEntityId: ID buyerLoanFundingId: ID currency: Currency! amount: Float sellPercentage: Float date: Date! effectiveDate: Date note: String debtTransferAfterDisbursements: Boolean } input LoanFundingFeeInput { id: ID assetFeeId: ID! value: Float allocationPercentage: Float allocationByCommitmentPercentage: Boolean allocationByOutstandingPrincipal: Boolean fixedAmountToAllocate: Float allocationByTotalPaidFromDeposit: Boolean } input LoanFundingOidComponentInput { id: ID assetComponentId: ID! allocationType: OidComponentAllocationType! allocationValue: Float } input LoanFundingOidTermsInput { matchAssetTerms: Boolean components: [LoanFundingOidComponentInput!] } input LoanFundingTemplateDataInput { compoundingInterestFrequency: FrequencyInput compoundingInterestRateSettings: InterestRateSettingsInput compoundingInterestUpdates: [InterestUpdateInput!] daysSettings: [DaysSettingsInput!] duesCalculationMethod: DuesCalculationMethod servicer: Boolean receivesMargin: Boolean expectedRepaymentsCappedByRelevantDues: Boolean fundingTerms: LoanFundingTermsTemplateInput interestAccrualFrequency: FrequencyInput interestRateSettings: InterestRateSettingsInput interestUpdates: [InterestUpdateInput!] oidTerms: OIDTermsInput partialPeriodDaysInYear: Int principalIndexDeterminedOnNextRepayment: Boolean principalIndexRateSettings: InterestRateSettingsInput principalIndexUpdates: [InterestUpdateInput!] } input LoanFundingTemplateFeeInput { allocationByCommitmentPercentage: Boolean allocationByOutstandingPrincipal: Boolean allocationByTotalPaidFromDeposit: Boolean allocationPercentage: Float feeName: String! fixedAmountToAllocate: Float value: Float allocationType: LoanFundingFeeAllocationType } input LoanFundingTemplateFilterInput { createdByUserId: ID includeDeleted: Boolean name: String } input LoanFundingTemplateInput { name: String! templateData: LoanFundingTemplateDataInput! } input LoanFundingTermsInput { assetId: ID loanFundingId: ID fundingEntityId: ID! fundingEntityIsServicer: Boolean fundingEntityReceivesMargins: Boolean commitmentAmount: Float seniority: Int currency: Currency fees: [LoanFundingFeeInput!] matchAssetTermsInterest: Boolean matchAssetTermsCompoundingInterest: Boolean matchAssetTermsPrincipalIndex: Boolean allocateInterestByCommitmentPercentage: Boolean allocateCompoundingInterestByCommitmentPercentage: Boolean allocatePrincipalByCommitmentPercentage: Boolean allocateInterestByOutstandingPrincipal: Boolean allocateCompoundingInterestByOutstandingPrincipal: Boolean fundingSourcesManualAllocation: Boolean aggregateTranchesSchedules: Boolean allocateOverpaymentByOutstandingPrincipal: Boolean interestBasedOnLoanOutstanding: Boolean accrueInterestIntoCompoundingInterest: Boolean autoPayExpectedInterestPayments: Boolean matchLoanDaysSettings: Boolean capRepaymentsToAccrued: Boolean ensureFullInterestPayment: Boolean } input LoanFundingTermsTemplateInput { allocateInterestMode: LoanFundingTermsInterestMode allocateCompoundingInterestMode: LoanFundingTermsInterestMode allocateOverpaymentByOutstandingPrincipal: Boolean allocatePrincipalByCommitmentPercentage: Boolean fees: [LoanFundingTemplateFeeInput!]! fundingSourcesManualAllocation: Boolean interestBasedOnLoanOutstanding: Boolean accrueInterestIntoCompoundingInterest: Boolean matchAssetTermsPrincipalIndex: Boolean autoPayExpectedInterestPayments: Boolean seniority: Int capRepaymentsToAccrued: Boolean ensureFullInterestPayment: Boolean } input LoanFundingsFilterInput { searchString: String fundingEntityId: ID assetId: ID loanFundingId: ID excludeIds: [ID!] } input LoanRescheduleInput { loanId: ID! rescheduleReason: String submittedOnDate: Date newInterestRate: Float updateInterestPeriod: PeriodInput rescheduleFromDate: Date newPrincipalGrace: PeriodInput newInterestGrace: PeriodInput } input LoanScheduleDueRowsRangeInput { beforeId: ID afterId: ID beforeIndex: Int afterIndex: Int } input LoanStatusChangeInput { loanId: ID! note: String } input LoanTemplateDataInput { interestRateSettings: InterestRateSettingsInput compoundingInterestRateSettings: InterestRateSettingsInput principalIndexRateSettings: InterestRateSettingsInput productName: String! amortizationTypeOptions: [AmortizationType] amortizationType: AmortizationType fixedRepaymentAmount: Float feeOptions: [LoanFeeTemplateInput!] fees: [LoanFeeTemplateInput!] currency: String baseCurrency: String daysInYearType: DaysInYear daysInYearTypeOptions: [DaysInYear] daysInMonthType: DaysInMonth daysInMonthTypeOptions: [DaysInMonth] partialPeriodDaysInYear: Int principalGrace: [PeriodInput!] interestGrace: [PeriodInput!] compoundingInterestGrace: [PeriodInput!] interestRatePerOptions: [FrequencyEveryEnum!] interestType: InterestType interestTypeOptions: [InterestType] floatingRateOptions: [TemplateFloatingRateInput] principalIndexOptions: [TemplateFloatingRateInput] fixedCompoundingInterestRatePerOptions: [FrequencyEveryEnum!] loanPurposeOptions: [String] loanPurpose: String principalRepaymentFrequency: FrequencyInput interestRepaymentFrequency: FrequencyInput interestAccrualFrequency: FrequencyInput compoundingInterestFrequency: FrequencyInput compoundingInterestRepaymentFrequency: FrequencyInput loanTermPeriod: Float frequencyTypeOptions: [FrequencyEveryEnum!] daysInEveryOptions: [EveryFromEnum!] loanAmount: Float oidTerms: OIDTermsTemplateInput hiddenFields: [LoanWizardFields!] repaymentStrategy: [InstallmentComponentType!] repaymentStrategyOptions: [[InstallmentComponentType!]!] rejectLoanReasonsOptions: [String!] minDaysToFirstRepayment: Int disbursementDayInMonthForRepaymentsDelay: Int utilities: [LoanTermsUtilities!] "Relevant holidays calendar for `paymentOnNonWorkingDaySettings`, e.g. `US`, `IL`, `CA` (ISO country code)" holidaysCalendarsOptions: [String!] holidaysCalendar: String paymentOnNonWorkingDaySettings: PaymentOnNonWorkingDaySettings workingDays: WorkingDaysInput flags: LoanTemplateFlagsInput! principalAmortizationDeterminationEvent: PrincipalAmortizationDeterminationEvent principalAmortizationDeterminationEventOptions: [PrincipalAmortizationDeterminationEvent!] preferredKPIsCalculation: KPIsCalculationType decreasedCompoundingPaymentLimit: Float decreasedCompoundingPaymentPercentage: Float interestFloatDays: Int } input LoanTemplateFlagsInput { duesCalculationMethod: DuesCalculationMethod capitalizationComponent: CapitalizationComponent isInterestFloatingRate: Boolean isCompoundingInterestFloatingRate: Boolean activateOnApproval: Boolean isRevolving: Boolean taxApply: Boolean compoundingInterestEnabled: Boolean disableInterestAfterLoanEndDate: Boolean interestNotRelativeToCompounding: Boolean restructureRepaymentsAutomatically: Boolean expectedRepaymentsCappedByRelevantDues: Boolean payOutstandingInterestOnLastRepayment: Boolean advanceRepaymentsAtStartOfPeriod: Boolean advanceInterestRepaymentsAtStartOfPeriod: Boolean advanceSimpleInterestRepaymentsAtStartOfPeriod: Boolean updateCompoundingOutstandingOnTransaction: Boolean capitalizeOutstandingCompounding: Boolean capitalizeCompoundingIntoPrincipal: Boolean expRepaymentsAffectOutstandingAfterLastTransaction: Boolean applyEarlyRedemptionFeesBeforeNegativeOutstanding: Boolean noOutstandingResetOnEarlyRedemption: Boolean interestPaymentsPayAccruedAmount: Boolean amortizationPaysPrincipalAndInterest: Boolean payOutstandingCompoundingBeforeNonCapitalized: Boolean principalIndexDeterminedOnNextRepayment: Boolean principalIndexEnabled: Boolean deductDisbursementFees: Boolean deductAdvanceSimpleInterestRepaymentFromDisbursement: Boolean interestPaymentRelativeToPrincipalPayment: Boolean multiLoan: Boolean outstandingCompoundingUpdatesPerDisbursement: Boolean allowAmortizationUpdateAndDistributeUtility: Boolean showExpectedDisbursements: Boolean deductRepaymentOnDisbursementDate: Boolean interestAccrualFrequencyEnabled: Boolean createOIDComponentFromCommitmentFee: Boolean showInterestDecreaseThreshold: Boolean hideDeprecatedDisbursementDeductionInputs: Boolean skipOverdueCalculation: Boolean grossAmountCalculation: Boolean showDecreasedCompoundingPayment: Boolean showEnableMakerChecker: Boolean showBaseCurrency: Boolean showMinimumBalanceForInterestAccrual: Boolean showInterestFloatDays: Boolean useExpectedLoanScheduleForFundingSources: Boolean showCompoundingInterestNotCapitalized: Boolean compoundingInterestNotCapitalized: Boolean showFundingSourcesPrincipalRepaymentDelay: Boolean showFundingSourcesNumberOfDelayedPrincipalRepayments: Boolean rateDeterminationStartsBeforeLoanStartDate: Boolean disableFutureRateDetermination: Boolean addOutstandingCompoundingToUtilizedPrincipal: Boolean disableFsAllocationOfFutureRepaymentsPaidFromDeposit: Boolean treatOverdueCompoundingInterestAsPrincipal: Boolean useLastDayOfMonthForShortMonthsInFrequency: Boolean disableFeeNameInput: Boolean } input LoanTemplateInput { id: ID template: LoanTemplateDataInput! } input LoanTermsInput { loanName: String date: Date description: String interestRateSettings: InterestRateSettingsInput compoundingInterestRateSettings: InterestRateSettingsInput principalIndexRateSettings: InterestRateSettingsInput interestType: InterestType fixedRepaymentAmount: Float approvedPrincipal: Float approvedPrincipalInBaseCurrency: Float proposedPrincipal: Float netPrincipal: Float revolvingPeriod: PeriodInput principalRepaymentFrequency: FrequencyInput interestRepaymentFrequency: FrequencyInput interestAccrualFrequency: FrequencyInput compoundingInterestFrequency: FrequencyInput compoundingInterestRepaymentFrequency: FrequencyInput principalGrace: [PeriodInput!] interestGrace: [PeriodInput!] compoundingInterestGrace: [PeriodInput!] interestUpdates: [InterestUpdateInput!] compoundingInterestUpdates: [InterestUpdateInput!] principalIndexUpdates: [InterestUpdateInput!] exchangeRateUpdates: [InterestUpdateInput!] daysSettings: [DaysSettingsInput!] partialPeriodDaysInYear: Int disbursements: [DisbursementInput!] repaymentStrategy: [InstallmentComponentType!] amortizationType: AmortizationType customPrincipalAmortization: [AmortizationDefinitionInput!] paymentOnNonWorkingDaySettings: PaymentOnNonWorkingDaySettings holidaysCalendar: String workingDays: WorkingDaysInput duesCalculationMethod: DuesCalculationMethod capitalizationComponent: CapitalizationComponent isRevolving: Boolean disableInterestAfterLoanEndDate: Boolean interestNotRelativeToCompounding: Boolean restructureRepaymentsAutomatically: Boolean expectedRepaymentsCappedByRelevantDues: Boolean payOutstandingInterestOnLastRepayment: Boolean advanceRepaymentsAtStartOfPeriod: Boolean advanceInterestRepaymentsAtStartOfPeriod: Boolean advanceSimpleInterestRepaymentsAtStartOfPeriod: Boolean updateCompoundingOutstandingOnTransaction: Boolean capitalizeOutstandingCompounding: Boolean capitalizeCompoundingIntoPrincipal: Boolean expRepaymentsAffectOutstandingAfterLastTransaction: Boolean applyEarlyRedemptionFeesBeforeNegativeOutstanding: Boolean noOutstandingResetOnEarlyRedemption: Boolean interestPaymentsPayAccruedAmount: Boolean amortizationPaysPrincipalAndInterest: Boolean payOutstandingCompoundingBeforeNonCapitalized: Boolean minimumBalanceForInterestAccrual: Float interestFloatDays: Int principalIndexDeterminedOnNextRepayment: Boolean deductDisbursementFees: Boolean deductAdvanceSimpleInterestRepaymentFromDisbursement: Boolean interestPaymentRelativeToPrincipalPayment: Boolean multiLoan: Boolean oidTerms: OIDTermsInput effectiveDate: Date principalAmortizationDeterminationEvent: PrincipalAmortizationDeterminationEvent outstandingCompoundingUpdatesPerDisbursement: Boolean fundingTerms: LoanFundingTermsInput showExpectedDisbursements: Boolean deductRepaymentOnDisbursementDate: Boolean skipOverdueCalculation: Boolean useExpectedLoanScheduleForFundingSources: Boolean taxRules: [TaxRulesInput!] maturityDate: Date commitmentExpirationDate: Date decreasedCompoundingPaymentLimit: Float decreasedCompoundingPaymentPercentage: Float termsNotes: [TermsNoteInput!] compoundingInterestNotCapitalized: Boolean fundingSourcesPrincipalRepaymentDelay: TimeIntervalInput fundingSourcesNumberOfDelayedPrincipalRepayments: Int rateDeterminationStartsBeforeLoanStartDate: Boolean disableFutureRateDetermination: Boolean addOutstandingCompoundingToUtilizedPrincipal: Boolean disableFsAllocationOfFutureRepaymentsPaidFromDeposit: Boolean treatOverdueCompoundingInterestAsPrincipal: Boolean useLastDayOfMonthForShortMonthsInFrequency: Boolean } input LoanTermsPreviewInput { loanId: ID! loanTerms: LoanTermsInput! termIdToUpdate: ID } input LoanTransactionInput { loanId: ID includeDraftChanges: Boolean loanFundingId: ID "**Required** - `totalDistribution` or `distribution` or `baseNominalPrincipal`" distribution: InstallmentComponentsInput deductedPrincipal: Float "`totalDistribution` is distributed by the loan repayment strategy" totalDistribution: Float baseNominalPrincipal: Float date: Date! effectiveDate: Date type: TransactionType! note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency rateToBaseCurrency: Float earlyRedemption: Boolean applyExpectedRepaymentsUntilEarlyRedemption: Boolean duesCalculationMethod: DuesCalculationMethod capitalizationComponent: CapitalizationComponent fundingSourcesAllocationDraft: FundingSourcesAllocationDraftInput relatedFundingEntityTransaction: FundingEntityTransactionInput relatedEquityTransaction: RelatedEquityTransactionInput relatedLoanFundingSplitTransactions: [LoanTransactionInput!] isPrepayment: Boolean } input LoanTransactionVerificationInput { transactionIndex: Int! transaction: ImportLoanTransactionInput! } input LoansFilterInput { searchString: String hideTranches: Boolean hideMultiTrancheFacilities: Boolean submittedOnDate: PeriodInput startDate: PeriodInput endDate: PeriodInput loanStatus: [LoanStatusEnum!] lifeCycle: [LoanLifeCycle!] clientIds: [ID!] ownerIds: [ID!] productIds: [ID!] purpose: [String!] multiTrancheLoanIds: [ID!] fundingSourceIds: [ID!] commitmentGreaterThan: Float overdueGreaterThan: Float repaidGreaterThan: Float outstandingGreaterThan: Float distinctBy: LoansDistinctBy boardId: ID showGroupLoans: Boolean showOnlyGroupLoans: Boolean showOnlyMultiTrancheLoans: Boolean } input LoansSortByInput { field: LoanSortByFieldEnum! desc: Boolean! } input MetabaseGlobalSettingsInput { portfolioPerformanceQuestionId: String mainDashboardMetabaseId: String reportDashboards: [ReportDashboardSettingsInput!] } input NonWorkingDaysSettingsInput { "Defines how to handle dates for non working days and holidays." paymentOnNonWorkingDaySettings: PaymentOnNonWorkingDaySettings "Relevant holidays calendar for `paymentOnNonWorkingDaySettings`, e.g. `US`, `IL`, `CA` (ISO country code)" holidaysCalendar: String "Defines working days. Only relevant if `paymentOnNonWorkingDaySettings` is defined" workingDays: WorkingDaysInput } input NotificationsFilterInput { unreadOnly: Boolean startDate: Date endDate: Date type: [NotificationType!] entityType: [NotificationEntityType!] } input OIDBreakdownRowInput { name: String! amount: Float amortized: Float! unamortized: Float! } input OIDComponentInput { id: ID name: String! date: Date! value: Float! type: OIDComponentType! description: String allocateToLoanFundings: Boolean decreaseRemainingCost: Boolean initialAmortizedAmount: Float } input OIDRestructureInput { loanId: ID! oidRestructureDate: Date! oidRestructureNote: String } input OIDRowInput { rate: Float amount: Float totalWithInterest: Float remainingCost: Float } "Input for OID Terms" input OIDTermsInput { "OID terms Id for update" id: ID "Determines the method for calculating OID" method: OIDMethod "**Deprecated** - The date is ignored. Terms apply from the start of the loan." date: Date "Components to be amortized over the loan period" components: [OIDComponentInput!] "Daily rate settings applied only for OID. Days in year - actual or 365 or 360" daysInYear: DaysInYear "Daily rate settings applied only for OID. Days in month - actual or 30" daysInMonth: DaysInMonth "Determines if the compounding interest should be amortized in the OID cost" amortizeCompoundingInterest: Boolean "Determines the frequency at which OID is reported - defaults to the interest repayment frequency" frequency: FrequencyInput "Sets the periods in which the no OID interest will accrue" nonAccrualPeriods: [PeriodInput!] "Determines if the effective rate will be calculated based on expected schedule" useExpectedSchedule: Boolean "Terms of the OID funding" fundingTerms: LoanFundingOidTermsInput } input OIDTermsTemplateInput { method: OIDMethod methodOptions: [OIDMethod!]! daysInYear: DaysInYear daysInMonth: DaysInMonth componentNames: [String!] amortizeCompoundingInterest: Boolean useExpectedSchedule: Boolean frequency: FrequencyInput } input OverrideScheduleRowInput { "Sets OID values according to `oid`" oid: OIDRowInput "Sets OID breakdown" oidBreakdown: [OIDBreakdownRowInput!] "Sets outstanding values according to `outstanding`" outstanding: InstallmentComponentsInput "Sets due values according to `due`" due: InstallmentComponentsInput "Sets interest charged on period value" interestChargedOnPeriodOverride: Float "Sets compounding interest charged on period value" compoundingChargedOnPeriodOverride: Float "Sets the calculated realized principal" realizedPrincipal: Float } input PeriodInput { startDate: Date relativeStartDate: RelativeDateInput endDate: Date timeInterval: FrequencyEveryEnum timeIntervalMultiplier: Int } input PortfolioPerformanceInput { include: PortfolioAmountInclusionOption period: AggregationPeriod } input RatesProviderCredentialsInput { bloomberg: BloombergCredentialsInput } input RejectLoanInput { loanId: ID! rejectedOnDate: Date! reason: String note: String } input RelatedEquityTransactionInput { equityId: ID equityType: EquityType equityName: String equityCurrency: Currency clientId: ID type: EquityTransactionType! date: Date! currency: Currency! rateToBaseCurrency: Float pricePerUnit: Float! numberOfUnits: Float! createFMV: Boolean description: String } input RelativeDateInput { type: RelativeDateType timeUnit: FrequencyEveryEnum amount: Int } input ReminderSettingInput { enabled: Boolean repetitions: Int reminderInterval: Int reminderEvery: FrequencyEveryEnum } input ReopenInvestmentEntityInput { id: ID! } input ReopenLoanInput { loanId: ID! note: String } input ReportDashboardSettingsInput { label: String dashboardId: String } input SellLoanFundingDebtInput { sellerLoanFundingId: ID! buyerLoanFundingId: ID buyerFundingEntityId: ID sellerLoanFundingTransaction: LoanTransactionInput! } input SetLoanOutstandingInput { loanId: ID! outstanding: InstallmentComponentsInput! note: String } input StatementFilesNamingInput { client: ClientStatementFileNameOptions loan: LoanStatementFileNameOptions loanFunding: LoanFundingStatementFileNameOptions fundingEntity: FundingEntityStatementFileNameOptions } input StatementInput { "Doc template id - required unless previewDocxTemplateKey is provided" templateId: ID "Statement date" date: Date! "Exported document type" docType: DocumentType! "Optional - transactions list will only include transactions after `transactionFrom` date." transactionsFromDate: Date "Optional - interest Due Rows list will only include from `interestRowsFromDate` to Statement Date" interestRowsFromDate: Date "Optional - statement for specific investor, payments affected by commitment percentage" investorId: ID "Optional - temporary preview template key for one-time generation (admin only)" previewDocxTemplateKey: String "Required when previewDocxTemplateKey is provided - statement type for preview mode (admin only)" previewType: DocTemplateType } "Input for tax rules" input TaxRulesInput { id: ID "Date from which to apply the tax rule" date: Date! "VAT rate to apply" vat: Float! "Apply VAT on fees" vatApplyOnFee: Boolean "Apply VAT on interest" vatApplyOnInterest: Boolean } input TemplateFloatingRateInput { id: ID! name: String } input TermsNoteInput { id: ID text: String! relatedFieldId: String! } input TimeIntervalInput { timeInterval: FrequencyEveryEnum timeIntervalMultiplier: Int } input UpdateBrokerInput { name: String email: String mobileNumber: String freeText: JSON loans: [ID!] clients: [ID!] } input UpdateClientInput { identificationNumber: String firstName: String lastName: String companyName: String email: String mobileNumber: String description: String } input UpdateDataApplicationInput { brokerId: ID clientId: ID workflowCardId: ID ownerId: ID emailBody: String emailTitle: String expiryEnabled: Boolean expiredAfterDays: Int freeText: JSON } input UpdateDealInput { name: String clientId: Int facilitySize: Float extractedData: JSON status: DealStatus closingDate: String currency: String } input UpdateDynamicLockInput { id: ID! locked: Boolean! } input UpdateDynamicPropertyInput { id: ID! name: String newOptions: [String!] deletedOptions: [String!] required: Boolean position: Int visible: Boolean } input UpdateDynamicTableInput { id: ID! name: String group: String createColumns: [CreateDynamicPropertyInput!] updateColumns: [UpdateDynamicPropertyInput!] deleteColumns: [ID!] } input UpdateEffectiveRateRestructureDateStatusInput { loanId: ID! date: Date! isActive: Boolean! } input UpdateEquityAllocationInput { id: ID! loanId: ID date: Date currency: Currency numberOfUnits: Float fmv: Float note: String equityId: ID equityType: EquityType equityName: String equityCurrency: Currency } input UpdateEquityInfoInput { id: ID! name: String equityClass: String description: String investmentRights: String expirationDate: Date expectedExerciseDate: Date exercisePricePerUnit: Float clientId: ID loanId: ID refId: String ownerIds: [ID!] } input UpdateEquityTransactionInput { id: ID! type: EquityTransactionType date: Date currency: Currency rateToBaseCurrency: Float pricePerUnit: Float numberOfUnits: Float total: Float description: String } input UpdateEquityValuationInput { id: ID! type: String date: Date currency: Currency pricePerUnit: Float totalPrice: Float totalIssuedUnits: Float description: String } input UpdateFileEntryInput { "New display name (rename), including file extension" name: String "New parent folder ID. Null to move to root level of the entity. Undefined to keep current position." parentId: ID "New owning entity ID. Used when moving a file/folder to a different entity (e.g. drag-and-drop between a Loan and it's Client)." entityId: ID "New owning entity type. Must be provided together with entityId when moving between entities." entityType: FileEntryEntityType } input UpdateFundingEntityInput { id: ID! name: String logoKey: String bankDetails: BankDetailsInput currency: Currency } input UpdateFundingEntityTransactionInfoInput { id: ID! note: String } input UpdateGenericDataApplicationInput { workflowStageId: ID ownerId: ID emailBody: String emailTitle: String emailApplicationToClient: Boolean isBrokerMode: Boolean freeText: JSON aiPrompt: String } input UpdateInvestmentEntityInput { id: ID! name: String legalName: String statementDisplayName: String type: String address: String identificationNumber: ID isManaged: Boolean logoKey: String trusteesOrDirectors: String phoneNumber: String currency: Currency bankingDetails: BankDetailsInput } input UpdateInvestmentTransactionInfoInput { note: String } input UpdateLoanFundingInfoInput { id: ID! name: String description: String templateId: ID dealId: ID } input UpdateLoanInfoInput { name: String description: String loanPurpose: String group: String parentGroupLoanId: ID parentLoanId: ID refId: ID approvalDate: Date contractClosingDate: Date clientId: ID brokerId: ID ownerId: ID ownerIds: [ID!] isTest: Boolean dealId: ID } input UpdateLoanTermsInfoInput { description: String } input UpdateLoanValuationInput { id: ID! date: Date valuation: Float currency: Currency methodology: String note: String } input UpdateNoteInput { id: ID! text: String! relatedFieldId: String } input UpdateTransactionInfoInput { note: String } input UpdateViewInput { name: String type: ViewType options: JSON isDefault: Boolean } input UpdateWorkflowBoardInput { id: ID! title: String! } input UpdateWorkflowCardInput { id: ID! title: String propertyValue: WorkflowCardPropertyInput freeText: JSON clientId: ID loanId: ID equityId: ID loanAmount: Float ownerId: String brokerId: String archived: Boolean } input UpdateWorkflowStageInput { id: ID! title: String! } input UpsertLoanFundingTermsInput { loanFundingId: ID fundingEntityId: ID! templateId: ID commitmentAmount: Float! interestType: LoanFundingTermsInterestMode interestRate: Float interestFloatingRateId: ID compoundingInterestType: LoanFundingTermsInterestMode compoundingInterestRate: Float compoundingInterestFloatingRateId: ID fundingEntityIsServicer: Boolean fundingEntityReceivesMargins: Boolean } input UpsertLoanFundingsInput { loanId: ID! dealId: ID loanFundingTerms: [UpsertLoanFundingTermsInput!]! } input UserNotificationEventSettingsInput { daysOffset: Int! enabled: Boolean! eventType: UserNotificationEventType! } input UserNotificationsSettingsInput { loanScope: NotificationScope! emailDigestFrequency: NotificationEmailDigestFrequency! events: [UserNotificationEventSettingsInput!]! } input UsersFilterInput { searchString: String includeInactive: Boolean distinctBy: UsersDistinctBy roles: [String!] } input ViewInput { name: String! type: ViewType! options: JSON! } input WorkflowCardPropertyInput { boardPropertyId: ID! value: JSON } input WorkflowCardsFilterInput { clientIds: [ID!] ownerIds: [ID!] dataApplicationTemplateIds: [ID!] loanIds: [ID!] equities: [ID!] searchString: String archived: Boolean } input WorkingDaysInput { monday: Boolean tuesday: Boolean wednesday: Boolean thursday: Boolean friday: Boolean saturday: Boolean sunday: Boolean } type AccountInfo { logoUrl: String contactEmail: String defaultColor: String } type AgingAnalysis { id: ID! "Due by number of days" cohorts: [AgingAnalysisCohort!] "The total due" total: InstallmentComponents } type AgingAnalysisCohort { id: ID! numberOfDays: Int total: InstallmentComponents } type AgingAnalysisHistory { id: ID! "Due by number of days" cohorts: [AgingAnalysisCohort!] "The date of the historical aging data§" date: Date! loan: Loan } type AgingData { id: ID! date: Date breakdown: InstallmentComponents } type AllocationGraphValue { name: String! value: Float! entityId: ID } type AllowedOffices { id: ID name: String nameDecorated: String } type AmortizationDefinition { id: ID! "Sets the amortization definition to period or single repayment" type: AmortizationDefinitionRepaymentsType! "Defines the the date of repayment when type === SingleRepayment" date: Date "Defines the percentage of outstanding principal to be amortized. The relevant outstanding is the outstanding prior to amortization start date" percentageOfAmountToAmortize: Float "Defines a fixed repayment amount - can be used with either SingleRepayment or RepaymentsPeriod" fixedRepaymentAmount: Float "Defines the method to be used for amortization" amortizationType: AmortizationTypeForDefinition "Defines the frequency of repayments" repaymentFrequency: Frequency } type AsyncUpdate { isUpToDate: Boolean lastUpdate: DateTime updateRequestTimestamp: DateTime } type AuditEntry { id: ID! createdAt: DateTime! performedByUserId: ID performedByUserName: String performedOnDraft: Boolean action: AuditActionType note: String loan: Loan @deprecated(reason: "No longer supported") transaction: LoanTransaction @deprecated(reason: "No longer supported") entityType: AuditEntityType entityId: ID secondaryEntityType: AuditEntityType secondaryEntityId: ID isDerivedAudit: Boolean files: [FileEntry!] } type AuthUser { id: ID! userId: ID! name: String email: String phoneNumber: String mfaEnrolled: Boolean roles: [String!] permissions: [String!] globalSettings: GlobalSettings notificationsSettings: UserNotificationsSettings currencies: [CurrencySetting!] userAtlasHash: String userChatbaseHash: String } type BankDetails { bankName: String branch: String bankAddress: String accountNumber: String accountName: String accountType: String iban: String swift: String } type BloombergCredentials { clientId: String catalogId: String timeZone: String } type Broker { id: ID! createdAt: DateTime! name: String! email: String! mobileNumber: String loans(loansSkip: Int = 0, loansLimit: Int = 10): PaginatedLoans clients: [Client!] dataApplications(applicationsSkip: Int = 0, applicationsLimit: Int = 0): PaginatedDataApplications freeText: JSON dynamicFields: DynamicTable } type CashAvailabilityValue { balance: Float! date: Date! expected: Boolean } type ChangeApproval { id: ID! approver: User! approved: Boolean approvedAt: DateTime rejected: Boolean rejectedAt: DateTime } "A request for a change that needs to be approved by one or more approvers." type ChangeRequest { id: ID! loan: Loan! maker: User! approvers: [ChangeApproval!] status: ChangeRequestStatus! createdAt: DateTime! createdBy: User! approvedAt: DateTime description: String fileEntriesCount: Int fileEntries: [FileEntry!] changes: [EntityChangeRequest!] } type ChangeRequestActionRecord { id: ID! type: ChangeRequestActionRecordType! data: JSON! } type ChatMessage { id: ID! role: ChatMessageRole! content: String! timestamp: DateTime! createdBy: User } type Client { id: ID! type: ClientType! identificationNumber: String firstName: String lastName: String companyName: String displayName: String email: String mobileNumber: String isActive: Boolean createdAt: Date createdByUserId: ID description: String numOfActiveLoans: Int numOfPendingLoans: Int loans(loansSkip: Int = 0, loansLimit: Int = 10, noSubLoans: Boolean = false): PaginatedLoans equities(equitiesSkip: Int = 0, equitiesLimit: Int = 10): PaginatedEquities dataApplications(applicationsSkip: Int = 0, applicationsLimit: Int = 0): PaginatedDataApplications notes: [Note!] dynamicTables(tableType: DynamicTableType): [DynamicTable!] fileEntriesCount: Int } type ClientExtended { id: ID! type: ClientType! identificationNumber: String firstName: String lastName: String companyName: String displayName: String email: String mobileNumber: String isActive: Boolean createdAt: Date createdByUserId: ID description: String numOfActiveLoans: Int numOfPendingLoans: Int loans(loansSkip: Int = 0, loansLimit: Int = 10, noSubLoans: Boolean = false): PaginatedLoans equities(equitiesSkip: Int = 0, equitiesLimit: Int = 10): PaginatedEquities dataApplications(applicationsSkip: Int = 0, applicationsLimit: Int = 0): PaginatedDataApplications notes: [Note!] dynamicTables(tableType: DynamicTableType): [DynamicTable!] fileEntriesCount: Int currentCommitment: Float outstandingBalance: Float totalOverdue: Float nextPayment: Date lastPayment: Date warrantsValue: Float sharesValue: Float } type ClientGraphValue { date: Date! value: Float! } type CloseLoansInBulkRecordData { date: Date! note: String } type CommitmentBreakdown { active: CommitmentBreakdownRow pending: CommitmentBreakdownRow closed: CommitmentBreakdownRow } type CommitmentBreakdownRow { amount: Float! count: Int! percentage: Float! } type CurrencySetting { id: ID! currency: Currency! rateToBase: Float! } type CustomDocumentTemplate { id: ID name: String! mandatory: Boolean uploadedFileId: String } type DataApplication { id: ID! createdAt: DateTime! createdBy: User template: DataApplicationTemplate! sections: [DataApplicationSection!]! url: String! name: String! status: DataApplicationStatus! reviewedAt: DateTime submittedAt: DateTime client: Client broker: Broker loan: Loan audits(skip: Int, limit: Int): PaginatedAuditEntries accountInfo: AccountInfo secondsToCompletion: Int progress: DataApplicationProgress! responseData: [FormData] archived: Boolean emailTitle: String emailBody: String expiryEnabled: Boolean expiredAfterDays: Int emailApplicationToBroker: Boolean emailApplicationToClient: Boolean createdFromGeneralApplication: GenericDataApplication freeText: JSON workflowCard: WorkflowCard owner: User hasRelatedEmails: Boolean isAiGenerated: Boolean relatedEmails: [EmailContent!]! } type DataApplicationInputField { id: ID! label: String! description: String type: DataApplicationInputFieldType! position: Int! required: Boolean! options: [String!] placeholder: String displayCondition: DisplayCondition tableColumns: [DataApplicationInputField!] multipleFiles: Boolean relatedEntityField: DataApplicationRelatedEntityField numberNoComma: Boolean } type DataApplicationNotifications { remindProspectOnNoCompletion: ReminderSetting remindLenderOnNoCompletion: ReminderSetting notifyLenderOnSubmission: Boolean notifyLenderOnFirstProspectEngagement: Boolean } type DataApplicationProgress { totalInputs: Int! completedInputs: Int! totalRequiredInputs: Int! completedRequiredInputs: Int! } type DataApplicationRelatedEntityField { entityType: DataApplicationRelatedEntityType! fieldName: String tableId: ID workflowCardDynamicPropertyId: ID } type DataApplicationSection { key: String! position: Int! label: String! verified: Boolean fields: [DataApplicationField!]! progress: DataApplicationProgress! } type DataApplicationStaticField { id: ID! type: DataApplicationStaticFieldType! position: Int! body: String imageUrl: String } type DataApplicationTemplate { id: ID! name: String! sections: [DataApplicationTemplateSection!]! mainColor: String logoImageUrl: String bannerImageUrl: String notificationsSettings: DataApplicationNotifications emailTitle: String emailBody: String expiredAfterDays: Int emailApplicationToClient: Boolean translations: DataApplicationTemplateTranslations applicationsSent: Int avgSecondsToCompletion: Int } type DataApplicationTemplateSection { key: String! position: Int! label: String! fields: [DataApplicationField!]! } type DataApplicationTemplateTranslations { description: String brokerDetails: String brokerName: String brokerEmail: String } type DaysInEvery { daysInEveryType: DaysInEveryEnum daysInEveryNumber: Int } type DaysSettings { startDate: Date daysInYear: DaysInYear daysInMonth: DaysInMonth effectiveDate: Date } type Deal { id: ID! name: String facilitySize: Float client: Client loans: [Loan!] loanFundings: [LoanFunding!] closingDate: String currency: String status: DealStatus! files: [FileEntry!]! chatMessages: [ChatMessage!]! extractedData: JSON createdBy: User createdAt: DateTime! updatedAt: DateTime! } type DealAgentStatus { dealId: ID! status: String! agent: String! detail: String streamingContent: String } type DealOnboardingTermFeedbackResult { success: Boolean! message: String } type DealUpdate { dealId: ID! type: String! path: String value: JSON confidence: Float } type DebtSellComponent { name: DebtSellComponentType! sellerPreSell: Float sellerPostSell: Float buyerPostSell: Float note: String displayName: String relatedEntityId: ID } type DefaultEvent { startDate: Date! startNote: String endDate: Date endNote: String } type DeleteLoansInBulkRecordData { note: String } type Disbursement { id: ID! date: Date! amount: Float! isDisbursed: Boolean deductions: InstallmentComponents loan: Loan } type DisplayCondition { inputField: DataApplicationInputField! conditionType: DisplayConditionType! value: String } type DocumentAttachment { name: String! storageKey: String! contentId: String size: Int } type DocumentResult { "Download link for the generated document" downloadUrl: String! "The generated document file name" fileName: String! } type DocumentTemplate { id: ID! label: String! type: DocTemplateType! docxTemplateUrl: String } type DynamicProperty { id: ID! name: String! type: DynamicPropertyType columnType: DynamicPropertyColumnType! visible: Boolean! position: Int! required: Boolean options: [String!] relationType: DynamicPropertyRelationType relationKeyProperty: DynamicProperty relationPropertyTable: DynamicTableMetadata locked: Boolean } type DynamicTable { id: ID! relatedEntityType: DynamicEntityType! tableType: DynamicTableType! name: String! group: String columns: [DynamicProperty!] createdAt: Date data: [JSON] locked: Boolean } type DynamicTableGroups { Loan: [String!] Client: [String!] Equity: [String!] InvestmentEntity: [String!] General: [String!] LoanFunding: [String!] } type DynamicTableMetadata { id: ID! relatedEntityType: DynamicEntityType! tableType: DynamicTableType! name: String! group: String columns: [DynamicProperty!] createdAt: Date! locked: Boolean } type DynamicTableRowRawData { entityId: ID refId: ID rowId: ID data: JSON! } type EarlyRedemptionInBulkRecord { effectiveDate: Date transactionType: TransactionType distribution: InstallmentComponents applyTransactionAfterDailyCharges: Boolean closeLoan: Boolean note: String } type EmailContent { id: ID! from: String! to: String! date: String! subject: String bodyHtml: String inlineAttachments: [InlineAttachment!]! attachments: [DocumentAttachment!]! } type EntityChangeRequest { id: ID! changedEntity: ChangeRequestEntity originalEntity: ChangeRequestEntity action: ChangeRequestAction! changeRequest: ChangeRequest! comments: [UserComment!] } type EntityFileEntries { "ID of the entity" entityId: ID! "Type of the entity" entityType: FileEntryEntityType! "Name of the entity" entityName: String "All file entries belonging to this entity" fileEntries: [FileEntry!] } type EntityStatus { id: ID code: String value: String } type Equity { id: ID! refId: ID type: EquityType! status: AssetStatus! createdAt: Date name: String currency: Currency description: String acquisitionDate: Date expirationDate: Date expectedExerciseDate: Date exercisePricePerUnit: Float equityClass: String investmentRights: String summary: EquitySummary valuations: [EquityValuation!] allocations: [EquityAllocation!] transactions: [EquityTransaction!] expectedTransactions: [EquityTransaction!] fundingSources: [Investment!] notes: [Note!] fileEntriesCount: Int client: Client loan: Loan owners: [User!] audits(skip: Int, limit: Int): PaginatedAuditEntries dynamicTables(tableType: DynamicTableType): [DynamicTable!] exerciseEntries: [EquityExerciseEntry!] exercisedShare: Equity relatedWarrants: [Equity] equityKPIs: EquityKPIs } type EquityAllocation { id: ID! loan: Loan! equity: Equity! date: Date! currency: Currency! numberOfUnits: Float! fmv: Float! pricePerUnit: Float note: String } type EquityExerciseEntry { id: ID! date: Date! numberOfExercisedUnits: Float! share: Equity! warrant: Equity! } type EquityKPIs { tvpi: Float bvToCost: Float } type EquitySummary { shareholding: Float numberOfUnitsHeld: Float currentHoldingsValue: Float totalExercisePrice: Float totalExercisedUnits: Float cost: Float unrealizedGains: Float numberOfUnallocatedUnits: Float } type EquityTransaction { id: ID! equity: Equity type: EquityTransactionType! date: Date! currency: Currency! rateToBaseCurrency: Float pricePerUnit: Float numberOfUnits: Float total: Float! canceled: Boolean description: String loanTransaction: LoanTransaction } type EquityValuation { id: ID! type: String date: Date! currency: Currency! pricePerUnit: Float! totalIssuedUnits: Float description: String equity: Equity } type ExpectedDeployment { id: ID! "Date of the expected deployment" date: Date! "Loan's commitment amount, same as approved amount" commitment: Float! "expected amount to be deployed [deployment = disbursements - repayments]" deployment: Float! "Related loan" loan: Loan importInfoId: ID } type ExpectedLoanFundingAllocation { id: ID! allocationDraft: FundingSourcesAllocationDraft! loanFunding: LoanFunding! amount: Float! fundingEntityTransactionAmount: Float fundingEntityTransactionDate: Date } type ExpectedLoanFundingAllocationInputData { loanFundingId: ID! amount: Float! fundingEntityId: ID fundingEntityTransactionAmount: Float fundingEntityTransactionDate: Date } type ExpectedRepayment { id: ID! date: Date! effectiveDate: Date repaymentComponents: InstallmentComponents! loan: Loan } type ExpectedRepaymentUpdate { id: ID! type: ExpectedRepaymentUpdateType! effectiveDate: Date! date: Date! repaymentComponents: InstallmentComponents loan: Loan effectiveFrom: Date note: String } type FeeDetails { fee: LoanFee compounding: Boolean name: String amount: Float compoundingAmount: Float periodCharge: Float deposit: Boolean expense: Boolean income: Boolean } type FeeDetailsInputData { feeId: Int amount: Float! } type FeeScheduleDetails { fee: LoanFee amount: Float } type FetchFloatingRateResult { id: ID! success: Boolean! numberOfRatesAdded: Int name: String } type FileEntry { "File entry ID" id: ID! "Display name of the file or folder, including file extension" name: String! "The type of the owning entity" entityType: FileEntryEntityType! "The ID of the owning entity" entityId: ID! "Name of the owning entity" entityName: String "Parent folder ID. Null means the entry is at the root level of its entity." parentId: ID "Whether this entry is a folder (true) or a file (false)" isFolder: Boolean "S3 storage key for the file location. Null for folders." storageKey: String "File size in bytes. Null for folders." sizeInBytes: Int "Extraction status of the file entry" extraction: FileEntryExtraction "Timestamp when the file entry was created" createdAt: DateTime! "Timestamp when the file entry was last updated" updatedAt: DateTime! "User who created this file entry" createdBy: User "Timestamp when the file entry was deleted" deletedAt: DateTime } "Text content of a FileEntry returned by `getFileEntryContent`. Supported formats: PDF only. Text capped at 40,000 chars (~10 pages); see `textWasTruncated`." type FileEntryContent { fileEntryId: ID! fileName: String! "MIME type derived from the file extension." mediaType: String! "Extracted UTF-8 text content. Capped at 40,000 chars; see `textWasTruncated`." text: String! "Total pages in the source PDF. Null for non-PDF formats." totalPages: Int "Start page of returned text. Null for non-PDF formats." startPage: Int "End page of returned text (inclusive). Null for non-PDF formats." endPage: Int "True if `text` was truncated due to the 40,000-char length cap." textWasTruncated: Boolean! } type FileEntryExtraction { id: ID! extractionStatus: FileExtractionStatus extractedData: JSON } type FloatingRate { id: ID! name: String! floatingRateProvider: FloatingRateProvider providerRateIdentifier: String additionalIdentifier: String principalIndex: Boolean exchangeRate: Boolean values: [FloatingRateValue!] } type FloatingRateValue { id: ID! date: Date! value: Float! } type FormData { fieldId: ID! type: DataApplicationInputFieldType! value: JSON valueAiReasoning: ValueAIReasoning } type Frequency { relativeStartDate: RelativeDate startDate: Date endDate: Date includeStartDate: Boolean includeEndDate: Boolean every: FrequencyEveryEnum everyMultiplier: Int daysInEvery: DaysInEvery @deprecated(reason: "No longer supported") on: DaysInEveryEnum daysOffset: Int applyNonWorkingDaysStrategy: Boolean repetitions: Int includeFirstFreq: Boolean specificDates: [Date!] } type FundingEntity { id: ID! name: String! logoUrl: String bankDetails: BankDetails baseCurrency: Currency! totalCommitment: Float totalDisbursement: Float contributed: Float currentAverageInterestRate: Float receivables: InstallmentComponents cashReceived: InstallmentComponents mergedLoanFundingsSummary: LoanSummary isInactive: Boolean fundedLoans: [LoanFunding!] dynamicTables(tableType: DynamicTableType): [DynamicTable!] notes: [Note!] fileEntriesCount: Int transactions: [FundingEntityTransaction!] kpis: LoanKPIs kpisAsyncUpdate: AsyncUpdate activeLoansCount: Int utilizationRate: Float totalReturned: Float expectedTotalValue: Float lastScheduleUpdate: DateTime commitmentBreakdown: CommitmentBreakdown } type FundingEntityTransaction { id: ID! type: TransactionType canceled: Boolean cancellationDate: Date distribution: InstallmentComponents date: Date! effectiveDate: Date note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency rateToBaseCurrency: Float fundingEntity: FundingEntity loanFunding: LoanFunding relatedLoanFundingTransaction: LoanTransaction originatingFundingEntity: FundingEntity creationOpId: ID loanFundingDebtSell: LoanFundingDebtSell } type FundingEntityTransactionInputData { type: TransactionType canceled: Boolean cancellationDate: Date distribution: InstallmentComponentsInputData date: Date! effectiveDate: Date note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency rateToBaseCurrency: Float fundingEntityId: ID! loanFundingId: ID loanFundingTransactionId: ID } type FundingSourcesAllocationDraft { id: ID! asset: Loan! date: Date! expectedAllocations: [ExpectedLoanFundingAllocation!] allocated: Boolean note: String } type FundingSourcesAllocationDraftInputData { id: ID assetId: ID! date: Date! expectedAllocations: [ExpectedLoanFundingAllocationInputData!] note: String } type FundingSourcesReconciliationAccount { id: ID! balance: Float transactions: [FundingSourcesReconciliationAccountTransaction!] } type FundingSourcesReconciliationAccountTransaction { date: Date! balance: Float amount: Float loanFunding: LoanFunding transaction: LoanTransaction } type GenericDataApplication { id: ID! createdAt: DateTime! createdBy: User template: DataApplicationTemplate! name: String! url: String! isBrokerMode: Boolean archived: Boolean applications(applicationsSkip: Int = 0, applicationsLimit: Int = 0): PaginatedDataApplications freeText: JSON audits(skip: Int, limit: Int): PaginatedAuditEntries emailTitle: String emailBody: String emailApplicationToClient: Boolean accountInfo: AccountInfo workflowStage: WorkflowStage owner: User inboundEmailAddress: String! aiPrompt: String } type GlobalSettings { id: ID! baseCurrency: Currency flags: GlobalSettingsFlags limits: GlobalSettingsLimits limitedEntitiesCount: GlobalSettingsLimits agingAnalysisCohorts: [Int] agingAnalysisMode: AgingAnalysisMode agingAnalysisMonthlyCohorts: Boolean dateFormat: String workingDays: WorkingDays translations: JSON loanSummaryCard: [LoanSummaryCardSection] reportDashboards: [ReportDashboardSettings!] portfolioPerformanceQuestionId: String mainDashboardMetabaseId: String oidDateLock: Date oidDateLockMaxAgeInDays: Int loanApprovedAmountValidationThreshold: Float! accountInfo: AccountInfo statementFilesNaming: StatementFilesNaming! historicalKPIsCalculationDay: HistoricalKPIsCalculationDay historicalKPIsAsyncUpdate: AsyncUpdate historicalKPIsCalculationNumberOfMonths: Int ratesProviderCredentials: RatesProviderCredentials } type GlobalSettingsFlags { enableLoanManagementModule: Boolean enableDataApplicationModule: Boolean enableDataApplicationEmails: Boolean enableInvestorsModule: Boolean enableFundingSourcesModule: Boolean enableEquityModule: Boolean enableEquityAllocations: Boolean enableGenerateStatements: Boolean enableStatementProcessModule: Boolean enableLoanGroups: Boolean enableWorkflows: Boolean enableDataTablesScreen: Boolean calculateKPIsWithEquity: Boolean enableExpectedSchedule: Boolean enableSaveExpectedScheduleDueRows: Boolean enableSaveMultiLoanDueRows: Boolean enableLoanSelectionOnImport: Boolean enableMultiTrancheExpectedSchedule: Boolean enableLoanEffectiveRate: Boolean scheduleSortBy: ScheduleSortOption equityCostCalcMethod: CostCalcMethod statementActionFields: [StatementActionOption!] restructureEffectiveRateOnInterestBaseRateChangeOnly: Boolean enableLoanValuations: Boolean allowFutureRates: Boolean enableLoanDeposits: Boolean paydownDecreaseRemainingCostProportionately: Boolean enableDetailedFundingSourcesDebtSell: Boolean recalculateLoansOnFloatingRateUpdate: Boolean makerCheckerModuleEnabled: Boolean makerCheckerUserEnabled: Boolean includeHypercoreAdminsInUserLists: Boolean strictMakerChecker: Boolean enableDefaultDashboard: Boolean accelerateEOTFeeIncomeRecognition: Boolean mcpAccessLevel: McpAccessLevel enableDealOnboardingModule: Boolean setGaapOidToNoAccrualWhenNoUnamortizedOID: Boolean hasCMEDailyRatesAccess: Boolean } type GlobalSettingsLimits { activeLoans: Int multiCurrencyLoans: Int activeEquities: Int openEquities: Int } type GraphValue { name: String! value: Float! } type ImportError { id: ID! entityId: ID! error: String } type ImportInfo { id: ID! date: DateTime! createdBy: User type: ImportType rawInput: JSON status: ImportStatus revertStatus: ImportRevertStatus records: [ImportRecord!] progress: ImportProgress successfullyImported(skip: Int = 0, limit: Int = 100): PaginatedImportedEntities! finished: Boolean totalToImport: Int! errors: [ImportError!] errorsCount: Int! successCount: Int! undoCompleted: Boolean undoErrors: [ImportError!] } type ImportLoanTransaction { loanId: ID loanRefId: ID loanFundingId: ID "**Required** - `totalDistribution` or `distribution`" distribution: InstallmentComponents "`totalDistribution` is distributed by the loan repayment strategy" totalDistribution: Float date: Date! effectiveDate: Date type: TransactionType! note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency rateToBaseCurrency: Float earlyRedemption: Boolean isPrepayment: Boolean duesCalculationMethod: DuesCalculationMethod } type ImportProgress { recordsCount: Int! completedCount: Int! revertedCount: Int! errorsCount: Int! revertErrorsCount: Int! } type ImportRecord { id: ID! entityType: ImportRecordEntityType entityId: ID entityName: String primaryEntityType: ImportRecordEntityType primaryEntityId: ID primaryEntityName: String status: ImportRecordStatus! rawData: JSON! error: String disableRevert: Boolean } type ImportValidation { id: ID! isValid: Boolean! date: Date expectedOutstandingPrincipal: Float expectedOutstandingInterest: Float expectedOutstandingCompoundingInterest: Float expectedPaidPrincipal: Float expectedPaidInterest: Float expectedPaidCompoundingInterest: Float actualOutstandingPrincipal: Float actualOutstandingInterest: Float actualOutstandingCompoundingInterest: Float actualPaidPrincipal: Float actualPaidInterest: Float actualPaidCompoundingInterest: Float } type InlineAttachment { name: String! storageKey: String! contentId: String! downloadUrl: String! } type InstallmentComponents implements InstallmentComponentsInterface { total: Float principal: Float indexedPrincipal: Float compoundingInterest: Float "Accrued (uncapitalized) compounding interest" accruedCompoundingInterest: Float interest: Float fees: [FeeDetails!] penalties: [FeeDetails!] totalFees: Float totalPenalties: Float totalTaxes: Float totalWithTaxes: Float } type InstallmentComponentsForOutstanding implements InstallmentComponentsInterface { total: Float principal: Float indexedPrincipal: Float compoundingInterest: Float interest: Float fees: [FeeDetails!] penalties: [FeeDetails!] totalFees: Float totalPenalties: Float totalTaxes: Float "Only for outstanding: compounded interest + non capitalized compounded interest" totalCompoundingInterest: Float "Only for outstanding: Principal + compounded interest + compounding fees" capitalizedBalance: Float totalWithTaxes: Float } type InstallmentComponentsInputData { principal: Float indexedPrincipal: Float compoundingInterest: Float interest: Float fees: [FeeDetailsInputData!] penalties: [FeeDetailsInputData!] totalFees: Float totalPenalties: Float totalTaxes: Float } type InterestRateData { fromDate: Date! effectiveDate: Date baseRate: Float! finalRate: Float! ratePer: FrequencyEveryEnum margin: Float minRate: Float maxRate: Float updatedRate: Float updatedMargin: Float updatedMinRate: Float updatedMaxRate: Float floatingRateName: String floatingRateDate: Date updateEndDate: Date } "Interest rate settings for regular or compounding interest rates" type InterestRateSettings { id: ID floatingRateId: Int "Loan's floating interest rate. If not specified, the loan is considered to be a fixed rate loan." floatingRate: FloatingRate "When floating rate is used, the minimum threshold of the rate value." minimumRate: Float "When floating rate is used, the maximum threshold of the rate value." maximumRate: Float "When floating rate is used, define margin to be used in addition to the floating rate." margin: Float "When floating rate is used, Define how often the floating rate is updated." floatingRateDeterminationFrequency: Frequency "Loan's fixed interest rate. If not specified, the loan is considered to be a floating rate loan." fixedRate: Float "Defines the time period that the rate is applied for. E.g. yearly rate (default), monthly, weekly or daily" ratePer: FrequencyEveryEnum "Defines a delay (in days) between the loan floating interest rate and the actual floating interest rate" interestEffectiveDateDelayInDays: Int "Determines if the effective date delay will be by working days or calendar days" interestEffectiveDateDelayByWorkingDays: Boolean decreaseThreshold: Float effectiveDecreaseOnThreshold: Float } type InterestUpdate { id: ID! startDate: Date! endDate: Date newRate: Float newMargin: Float newMinimumRate: Float newMaximumRate: Float effectiveDate: Date } type Investment { id: ID! date: Date! investor: InvestmentEntity! investmentTarget: InvestmentTarget investmentTransactions: [InvestmentTransaction!] distributionTransactions: [InvestmentTransaction!] commitment: Float commitmentPercentage: Float currency: Currency isCanceled: Boolean cancellationDate: Date totalDistributedToInvestor: Float totalInvestedInTarget: Float commitmentInOriginalCurrency: Float originalCurrency: Currency } type InvestmentEntity { id: ID! creationDate: Date name: String legalName: String statementDisplayName: String address: String identificationNumber: ID phoneNumber: String trusteesOrDirectors: String logoUrl: String bankingDetails: BankDetails investorsInvestments: [Investment!] investments: [Investment!] type: String currency: Currency isClosed: Boolean closeDate: Date isManaged: Boolean kpis: InvestmentEntityKPIs balance: Float totalDistributedByEntity: Float totalDistributedToEntity: Float totalCommitmentToEntity: Float totalCommitmentByEntity: Float totalInvestedInEntity: Float totalInvestedByEntity: Float cashAvailabilityChart: [CashAvailabilityValue!] dynamicTables(tableType: DynamicTableType): [DynamicTable!] } type InvestmentEntityKPIs { irr: Float dpi: Float } type InvestmentEntityTransaction { id: ID! amount: Float! currency: Currency date: Date! note: String canceled: Boolean cancellationDate: Date balance: Float type: InvestmentTransactionType relatedEntity: RelatedInvestmentTarget } type InvestmentTransaction { id: ID! amount: Float! currency: Currency date: Date! note: String canceled: Boolean cancellationDate: Date } type Loan { "Loan's ID assigned by Hypercore." id: ID! "Loan's reference id. This is a free to enter ID to be used for future reference in bulk operations, search or other such operations." refId: ID "Loan's descriptive name used in UI and search" name: String "Loan's group tag" group: String "Loan's description" description: String "Loan's array of terms. A loan can have multiple terms as the terms updates while it is active." terms: [LoanTerms!] "Loan's array of draft terms. A loan can have multiple draft terms that will affect the loan only after approval." draftTerms: [LoanTerms!] "Owner user of the loan (backward compatibility - returns first owner)" owner: User "All owner users of the loan" owners: [User!] "Borrower defined on the loan" client: Client "Broker defined on the loan" broker: Broker "Loan's array of planned disbursements" disbursements: [Disbursement] "Loan's status" status: LoanStatusEnum! "Loan's commitment" commitment: Float "Loan's currency" currency: Currency "Loan's life cycle stage" lifeCycle: LoanLifeCycle "Loan's default events" defaultEvents: [DefaultEvent!] "Loan's calculated start date." startDate: Date "Loan's maturity date as defined in terms or the scheduleExpectedEndDate" endDate: Date "Calculated date on which the loan is expected to end according to the repayment schedule" scheduleExpectedEndDate: Date "Date on which the loan schedule actually ended, including cases of early redemption or prepayment." scheduleEndDate: Date "Loan's approval date" approvalDate: Date "Loan's contract closing date - the final day when all loan documents are signed and terms are agreed upon" contractClosingDate: Date "Loan's closing date - the date when the loan was actually closed" closingDate: Date "Loan's product name" loanTypeName: String "Loan's product id" loanTemplateId: ID "Loan's purpose. Options are defined in the loan product." loanPurpose: String "Calculated average annual interest rate." annualInterestRate: Float "Calculated average annual compounding interest rate." annualCompoundingInterestRate: Float "Array of interest rates applied to the loan" interestRatesData: [InterestRateData!] "Array of compounding interest rates applied to the loan" compoundingInterestRatesData: [InterestRateData!] "Array of principal index rates applied to the loan" principalIndexRatesData: [InterestRateData!] "Array of exchange rates applied to the loan" exchangeRateRatesData: [InterestRateData!] "Array of exchange rate from loan currency to base currency" baseCurrencyExchangeRate: [InterestRateData!] "Loan's base currency" baseCurrency: Currency "True if loan has specific base currency" isLoanWithBaseCurrency: Boolean "Loan's audit events" audit: LoanAudit """ Current repayment schedule of the loan. This schedule updates daily for active loans to keep accumulating interest. The schedule is also updated when a new action is performed on the loan. """ repaymentSchedule: LoanSchedule "Loan's current balances" summary: LoanSummary """ Expected repayment schedule of the loan. This schedule is the same as the current `repaymentSchedule` but also includes the future expected disbursements. *This schedule only relevant for multiple disbursements loan. """ expectedSchedule: LoanSchedule "Loan's original repayment schedule as it was when it was submitted." originalExpectedSchedule: LoanSchedule "Loan's transactions array" transactions: [LoanTransaction!] "Last transaction performed on the loan that was not cancelled" lastTransaction: LoanTransaction "Repayment schedule of the loan, latest by default; supports a specific date." scheduleRowByDate(date: Date): LoanScheduleRow "Loan's defined fees and penalties. The underlying data also holds the outstanding amounts for each fee or penalty." fees: [LoanFee!] "Loan's funding sources (old)" oldFundingSources: [Investment!] "Loan's funding sources" fundingSources: [LoanFunding!] "Loan's funding sources' allocation drafts per expected disbursement" fundingSourcesAllocationDrafts: [FundingSourcesAllocationDraft!] "Count of file entries belonging to the loan" fileEntriesCount: Int "Loan's defined tax rules." taxRules: [TaxRules!] "Loan's defined [OID](https://www.investopedia.com/terms/o/oid.asp) terms" oidTerms: OIDTerms "Events that affect the loan's OID rate" oidRestructureEvents: [OIDRestructureEvent!] "Loan's aging analysis" agingAnalysis: AgingAnalysis "Loan's historical aging analysis (if it was set)" agingAnalysisHistory: AgingAnalysisHistory "Loan's defined dues calculation method. see [`DuesCalculationMethod`](/docs/api/loans/enums/dues-calculation-method)." duesCalculationMethod: DuesCalculationMethod "Loan's submission date" submittedOnDate: Date "Loan's defined interest overrides" interestUpdates: [InterestUpdate!] "Loan's defined compounding interest overrides" compoundingInterestUpdates: [InterestUpdate!] "Loan's defined principal index overrides" principalIndexUpdates: [InterestUpdate!] "Loan's defined exchange rate overrides" exchangeRateUpdates: [InterestUpdate!] "Loan's defined repayment strategy" repaymentStrategy: [InstallmentComponentType!] "Loan's attached notes" notes: [Note!] "True if this loan was defined as a multi loan and could have child loans." multiLoan: Boolean "True if this loan is attached to a parent loan." isSubLoan: Boolean "Array of child loans attached. In case this is not a multi loan, this field would be null." subLoans: [Loan!] "Linked parent loan" parentLoan: Loan "Linked parent group loan" parentGroup: Loan "Array of child loans attached. In case this is not a group loan, this field would be null." groupSubLoans: [Loan!] "True if this loan was defined as a group loan and could have child loans." groupLoan: Boolean "If loan was imported through a bulk upload, this is it's import meta data." importInfo: ImportInfo "For loans imported through a bulk upload, expected values to validate against" importValidation: ImportValidation "Workflow cards related to the loan" workflowCards: [WorkflowCard] "True if loan was defined as a revolver. see [`isRevolving` input](/docs/api/loans/inputs/loan-application-input#is-revolving)" isRevolving: Boolean "If true and loan is active, loan schedule would be recalculated daily." dailyRecalculateSchedule: Boolean @deprecated(reason: "No longer supported") "If true, any missed repayments after last actual transaction would be considered as if they were paid in time. This is helpful when you need to backdate repayments." expRepaymentsAffectOutstandingAfterLastTransaction: Boolean "If true, early redemption fees would be applied before negative outstanding." applyEarlyRedemptionFeesBeforeNegativeOutstanding: Boolean "The equities related to the loan" equities: [Equity!] "The equities allocated to the loan" equityAllocations: [LoanEquityAllocation!] "The valuations related to the loan" valuations: [LoanValuation!] "Reject Reason (for rejected loans)" rejectReason: String "Status note" statusNote: String fundingSourcesAsyncUpdate: AsyncUpdate groupLoanAsyncUpdate: AsyncUpdate "Loan's generic data tables" dynamicTables(tableType: DynamicTableType): [DynamicTable!] "If true, loan's schedule will contain the expected disbursements" showExpectedDisbursements: Boolean "If true, loan's schedule deduct repayments on disbursement date" deductRepaymentOnDisbursementDate: Boolean "If true, loan calculation will not include overdue and aging" skipOverdueCalculation: Boolean "If true, use expected loan schedule for funding sources" useExpectedLoanScheduleForFundingSources: Boolean "Details of the change request associated with the loan, if any." changeRequest: ChangeRequest "True if this loan is marked as a test loan." isTest: Boolean "Loan's funding sources reconciliation account" fundingSourcesReconciliationAccount: FundingSourcesReconciliationAccount "True if floating rate determination starts before loan start date" rateDeterminationStartsBeforeLoanStartDate: Boolean "If true, future rate determinations are only applied once their determination date arrives" disableFutureRateDetermination: Boolean "If true, outstanding compounding will increase the utilized principal" addOutstandingCompoundingToUtilizedPrincipal: Boolean "If true, future loan repayments will not be auto-allocated to funding sources" disableFsAllocationOfFutureRepaymentsPaidFromDeposit: Boolean "If true, unpaid expected principal payments will be added to the compounding interest overdue (and not to the principal overdue)" treatOverdueCompoundingInterestAsPrincipal: Boolean """ If true, when the configured frequency day does not exist in a month, the calculated date will use the last valid day of that month instead of rolling into the next month. Example: - Frequency: every 1 month on day 30 Default behavior: - February result: March 1 Behavior when enabled: - February result: February 28 (or February 29 in leap years) """ useLastDayOfMonthForShortMonthsInFrequency: Boolean "Deal associated with the loan" deal: Deal } type LoanAudit { id: ID submittedOnDate: DateTime approvedOnDate: DateTime submittedBy: User approvedBy: User auditEntries(skip: Int, limit: Int): PaginatedAuditEntries } type LoanFee { id: ID! name: String value: Float secondaryValue: Float timeIntervalToEffectiveValue: TimeInterval ratePer: FrequencyEveryEnum dueDate: Date chargeDate: Date calculationType: FeeCalculation! repaymentTiming: FeeTiming chargeTiming: FeeTiming totalDue: Float outstanding: Float isPenalty: Boolean penaltyGrace: Period isRevolvingPeriodOnly: Boolean repaymentFrequency: Frequency chargeFrequency: Frequency loan: Loan description: String chargePeriod: Period isCompounding: Boolean compoundingFrequency: Frequency compoundingFeeCapitalizationComponent: CapitalizationComponent duesCalculationMethod: DuesCalculationMethod capitalized: Boolean minAmount: Float accrualFrequency: Frequency oidSettings: FeeOidSettings oidRecognitionStartDate: Date valueUpdates: [InterestUpdate!] isDeposit: Boolean depositPaysFor: DepositPaysForOptions depositConditions: DepositConditions depositNumberOfRepayments: Int fixedRepaymentAmount: Float allocateToLoanFundings: Boolean createOIDComponent: Boolean expenseOfLoanFundings: [LoanFunding] incomeOfLoanFundings: LoanFunding advanceRepayment: Boolean "Deprecated - use charge period instead" feePeriod: Period "Deprecated - use repaymentTiming and chargeTiming instead" timing: FeeTiming } type LoanFeeTemplate { name: String value: Float secondaryValue: Float timeIntervalToEffectiveValue: TimeInterval ratePer: FrequencyEveryEnum dueDate: Date chargeDate: Date calculationType: FeeCalculation! repaymentTiming: FeeTiming chargeTiming: FeeTiming isPenalty: Boolean penaltyGrace: Period isRevolvingPeriodOnly: Boolean repaymentFrequency: Frequency chargeFrequency: Frequency description: String chargePeriod: Period isCompounding: Boolean compoundingFrequency: Frequency compoundingFeeCapitalizationComponent: CapitalizationComponent duesCalculationMethod: DuesCalculationMethod capitalized: Boolean minAmount: Float accrualFrequency: Frequency oidSettings: FeeOidSettings oidRecognitionStartDate: Date createOIDComponent: Boolean isDeposit: Boolean depositPaysFor: DepositPaysForOptions depositConditions: DepositConditions depositNumberOfRepayments: Int fixedRepaymentAmount: Float advanceRepayment: Boolean allocateToLoanFundings: Boolean "Deprecated - use charge period instead" feePeriod: Period "Deprecated - use repaymentTiming and chargeTiming instead" timing: FeeTiming } type LoanFunding { id: ID! name: String fundingEntity: FundingEntity! fundingEntityIsServicer: Boolean fundingEntityReceivesMargins: Boolean loanFundingTerms: [LoanTerms!]! asset: Loan! description: String currency: Currency template: LoanFundingTemplate repaymentSchedule: LoanSchedule transactions: [LoanTransaction!] fees: [LoanFundingFee!] incomeFees: [LoanFee!] expenseFees: [LoanFee!] interestRatesData: [InterestRateData!] compoundingInterestRatesData: [InterestRateData!] interestUpdates: [InterestUpdate!] compoundingInterestUpdates: [InterestUpdate!] principalIndexUpdates: [InterestUpdate!] daysSettings: [DaysSettings!] duesCalculationMethod: DuesCalculationMethod dynamicTables(tableType: DynamicTableType): [DynamicTable!] notes: [Note!] fileEntriesCount: Int receivables: InstallmentComponents cashReceived: InstallmentComponents creationOpId: ID oidTerms: OIDTerms fundingSourcesManualAllocation: Boolean aggregateTranchesSchedules: Boolean debtSell: [LoanFundingDebtSell!] commitmentAmount: Float commitmentAmountInFundingEntityCurrency: Float participationPercentage: Float valuations: [LoanValuation!] matchLoanDaysSettings: Boolean currentInterestRate: Float currentCompoundingInterestRate: Float currentOidRemainingCost(inBaseCurrency: Boolean): Float deal: Deal } type LoanFundingDebtSell { id: ID! sellerLoanFunding: LoanFunding! buyerFundingEntity: FundingEntity! buyerLoanFunding: LoanFunding currency: Currency! date: Date! effectiveDate: Date amount: Float sellPercentage: Float note: String debtTransferAfterDisbursements: Boolean sellComponents: [DebtSellComponent!] status: LoanFundingDebtSellStatus! } type LoanFundingFee { id: ID! loanFunding: LoanFunding! assetFee: LoanFee! value: Float allocationPercentage: Float allocationByCommitmentPercentage: Boolean allocationByOutstandingPrincipal: Boolean fixedAmountToAllocate: Float allocationByTotalPaidFromDeposit: Boolean } type LoanFundingOidComponent { id: ID! loanFunding: LoanFunding! assetComponent: OIDComponent! allocationType: OidComponentAllocationType! allocationValue: Float } type LoanFundingOidTerms { matchAssetTerms: Boolean components: [LoanFundingOidComponent!] } type LoanFundingTemplate { id: ID! name: String! templateData: LoanFundingTemplateData! createdBy: User createdAt: DateTime! updatedAt: DateTime! deletedAt: DateTime } type LoanFundingTemplateData { compoundingInterestFrequency: Frequency compoundingInterestRateSettings: InterestRateSettings compoundingInterestUpdates: [InterestUpdate!] daysSettings: [DaysSettings!] duesCalculationMethod: DuesCalculationMethod servicer: Boolean receivesMargin: Boolean expectedRepaymentsCappedByRelevantDues: Boolean fundingTerms: LoanFundingTermsTemplate interestAccrualFrequency: Frequency interestRateSettings: InterestRateSettings interestUpdates: [InterestUpdate!] oidTerms: OIDTerms partialPeriodDaysInYear: Int principalIndexDeterminedOnNextRepayment: Boolean principalIndexRateSettings: InterestRateSettings principalIndexUpdates: [InterestUpdate!] } type LoanFundingTemplateFee { allocationByCommitmentPercentage: Boolean allocationByOutstandingPrincipal: Boolean allocationByTotalPaidFromDeposit: Boolean allocationPercentage: Float feeName: String! fixedAmountToAllocate: Float allocationType: LoanFundingFeeAllocationType value: Float } type LoanFundingTerms { commitmentAmount: Float seniority: Int matchAssetTermsInterest: Boolean matchAssetTermsCompoundingInterest: Boolean matchAssetTermsPrincipalIndex: Boolean allocateInterestByCommitmentPercentage: Boolean allocateCompoundingInterestByCommitmentPercentage: Boolean allocatePrincipalByCommitmentPercentage: Boolean allocateInterestByOutstandingPrincipal: Boolean allocateCompoundingInterestByOutstandingPrincipal: Boolean allocateOverpaymentByOutstandingPrincipal: Boolean interestBasedOnLoanOutstanding: Boolean accrueInterestIntoCompoundingInterest: Boolean autoPayExpectedInterestPayments: Boolean capRepaymentsToAccrued: Boolean ensureFullInterestPayment: Boolean } type LoanFundingTermsTemplate { allocateCompoundingInterestMode: LoanFundingTermsInterestMode allocateInterestMode: LoanFundingTermsInterestMode allocateOverpaymentByOutstandingPrincipal: Boolean allocatePrincipalByCommitmentPercentage: Boolean fees: [LoanFundingTemplateFee!]! fundingSourcesManualAllocation: Boolean interestBasedOnLoanOutstanding: Boolean accrueInterestIntoCompoundingInterest: Boolean matchAssetTermsPrincipalIndex: Boolean autoPayExpectedInterestPayments: Boolean seniority: Int capRepaymentsToAccrued: Boolean ensureFullInterestPayment: Boolean } type LoanFundingTransactionDistribution { loanFundingId: ID! date: Date! effectiveDate: Date! principalToDisburse: Float distribution: InstallmentComponents } type LoanKPIs { id: ID! "Calculated IRR until current date" irr: Float "Calculated IRR until current date, including equity components" irrIncludingEquity: Float "Calculated IRR until end of loan" expectedIrr: Float "Calculated IRR until end of loan, including equity components" expectedIrrIncludingEquity: Float "Calculated DPI until current date" dpi: Float "Calculated DPI until current date, including equity components" dpiIncludingEquity: Float "Calculated DPI until end of loan" expectedDpi: Float "Calculated DPI until end of loan, including equity components" expectedDpiIncludingEquity: Float "Calculated TVPI until current date" tvpi: Float "Calculated TVPI until current date, including equity components" tvpiIncludingEquity: Float "Calculated TVPI until end of loan" expectedTvpi: Float "Calculated TVPI until end of loan, including equity components" expectedTvpiIncludingEquity: Float } type LoanSchedule { id: ID! "Detailed schedule including transactions and daily due rows" scheduleTable(withDailyDues: Boolean = false, from: Date, until: Date): [LoanScheduleRow!] "Schedule's balances" summary(inBaseCurrency: Boolean = false): LoanSummary "Schedule's aging analysis" agingAnalysis: AgingAnalysis "When the schedule was calculated" updatedAt: DateTime "Schedule's expected repayments" expectedRepaymentUpdates: [ExpectedRepaymentUpdate!] "If has values then expected repayments will be set by the `expectedDeployments`" expectedDeployments: [ExpectedDeployment!] "Calculated KPI values for the loan" loanKPIs: LoanKPIs } type LoanScheduleRow { id: ID! index: Int date: Date! effectiveDate: Date! due: InstallmentComponents outstanding: InstallmentComponentsForOutstanding paid: InstallmentComponents waived: InstallmentComponents writtenOff: InstallmentComponents disbursedAmount: Float interestRate: Float ratePer: FrequencyEveryEnum compoundingInterestRate: Float compoundingRatePer: FrequencyEveryEnum type: LoanScheduleRowType! isCanceled: Boolean loanId: ID oid: OIDRow relatedExpectedRepaymentUpdate: ExpectedRepaymentUpdate relatedTransactionId: ID isDataOverride: Boolean isOIDOverride: Boolean finalExpectedRepaymentPastEndDate: Boolean baseCurrencyExchangeRate: Float principalRealizedBalance: Float nonCapitalizedCompoundingInterest: Float compoundingChargedOnPeriod: Float interestChargedOnPeriod: Float isCompoundingDate: Boolean isInterestAccrualDate: Boolean lastRowAtDate: Boolean paidFromDeposit: Boolean depositWithdrawal: Boolean isPrepayment: Boolean } type LoanSummary { id: ID! totalDisbursed: Float outstandingPrincipalBeforeAmortization: Float unutilizedPrincipal: Float totalExpectedDisbursements: Float paidInCapital: Float expectedPaidInCapital: Float distributedPrincipal: Float totalExpected: InstallmentComponents totalExpectedToDate: InstallmentComponents totalOutstanding: InstallmentComponentsForOutstanding totalDue: InstallmentComponents overdue: InstallmentComponents totalPaid: InstallmentComponents totalWaived: InstallmentComponents totalWrittenOff: InstallmentComponents totalOID: OIDSummary exchangeRateImpact: InstallmentComponents interestRate: Float compoundingInterestRate: Float oidRate: Float oidRemainingCost: Float } type LoanTemplate { id: ID! interestRateSettings: InterestRateSettings compoundingInterestRateSettings: InterestRateSettings principalIndexRateSettings: InterestRateSettings productName: String! amortizationTypeOptions: [AmortizationType] amortizationType: AmortizationType fixedRepaymentAmount: Float feeOptions: [LoanFeeTemplate!] fees: [LoanFeeTemplate!] currency: String baseCurrency: String daysInYearType: DaysInYear daysInYearTypeOptions: [DaysInYear] daysInMonthType: DaysInMonth daysInMonthTypeOptions: [DaysInMonth] partialPeriodDaysInYear: Int principalGrace: [Period!] interestGrace: [Period!] compoundingInterestGrace: [Period!] interestRatePerOptions: [FrequencyEveryEnum!] interestType: InterestType interestTypeOptions: [InterestType] floatingRateOptions: [TemplateFloatingRate] principalIndexOptions: [TemplateFloatingRate] fixedCompoundingInterestRatePerOptions: [FrequencyEveryEnum!] loanPurposeOptions: [String] loanPurpose: String principalRepaymentFrequency: Frequency interestRepaymentFrequency: Frequency interestAccrualFrequency: Frequency compoundingInterestFrequency: Frequency compoundingInterestRepaymentFrequency: Frequency loanTermPeriod: Float frequencyTypeOptions: [FrequencyEveryEnum!] daysInEveryOptions: [EveryFromEnum!] loanAmount: Float oidTerms: OIDTermsTemplate hiddenFields: [LoanWizardFields!] repaymentStrategy: [InstallmentComponentType!] repaymentStrategyOptions: [[InstallmentComponentType!]!] rejectLoanReasonsOptions: [String!] minDaysToFirstRepayment: Int disbursementDayInMonthForRepaymentsDelay: Int utilities: [LoanTermsUtilities!] "Relevant holidays calendar for `paymentOnNonWorkingDaySettings`, e.g. `US`, `IL`, `CA` (ISO country code)" holidaysCalendarsOptions: [String!] holidaysCalendar: String paymentOnNonWorkingDaySettings: PaymentOnNonWorkingDaySettings workingDays: WorkingDays flags: LoanTemplateFlags! isTemplateUsedByLoans: Boolean principalAmortizationDeterminationEvent: PrincipalAmortizationDeterminationEvent principalAmortizationDeterminationEventOptions: [PrincipalAmortizationDeterminationEvent!] preferredKPIsCalculation: KPIsCalculationType decreasedCompoundingPaymentLimit: Float decreasedCompoundingPaymentPercentage: Float interestFloatDays: Int interestCalculationPeriodType: InterestCalculationPeriodType @deprecated(reason: "No longer supported") interestCalculationPeriodTypeOptions: [InterestCalculationPeriodType] @deprecated(reason: "No longer supported") multiDisburseLoan: Boolean @deprecated(reason: "No longer supported") dailyRecalculateSchedule: Boolean @deprecated(reason: "No longer supported") } type LoanTemplateFlags { duesCalculationMethod: DuesCalculationMethod capitalizationComponent: CapitalizationComponent isInterestFloatingRate: Boolean isCompoundingInterestFloatingRate: Boolean activateOnApproval: Boolean isRevolving: Boolean taxApply: Boolean compoundingInterestEnabled: Boolean disableInterestAfterLoanEndDate: Boolean interestNotRelativeToCompounding: Boolean restructureRepaymentsAutomatically: Boolean expectedRepaymentsCappedByRelevantDues: Boolean payOutstandingInterestOnLastRepayment: Boolean advanceRepaymentsAtStartOfPeriod: Boolean advanceInterestRepaymentsAtStartOfPeriod: Boolean advanceSimpleInterestRepaymentsAtStartOfPeriod: Boolean updateCompoundingOutstandingOnTransaction: Boolean capitalizeOutstandingCompounding: Boolean capitalizeCompoundingIntoPrincipal: Boolean expRepaymentsAffectOutstandingAfterLastTransaction: Boolean applyEarlyRedemptionFeesBeforeNegativeOutstanding: Boolean noOutstandingResetOnEarlyRedemption: Boolean interestPaymentsPayAccruedAmount: Boolean amortizationPaysPrincipalAndInterest: Boolean payOutstandingCompoundingBeforeNonCapitalized: Boolean principalIndexDeterminedOnNextRepayment: Boolean principalIndexEnabled: Boolean deductDisbursementFees: Boolean deductAdvanceSimpleInterestRepaymentFromDisbursement: Boolean interestPaymentRelativeToPrincipalPayment: Boolean multiLoan: Boolean outstandingCompoundingUpdatesPerDisbursement: Boolean allowAmortizationUpdateAndDistributeUtility: Boolean showExpectedDisbursements: Boolean deductRepaymentOnDisbursementDate: Boolean interestAccrualFrequencyEnabled: Boolean createOIDComponentFromCommitmentFee: Boolean showInterestDecreaseThreshold: Boolean hideDeprecatedDisbursementDeductionInputs: Boolean skipOverdueCalculation: Boolean grossAmountCalculation: Boolean showDecreasedCompoundingPayment: Boolean showEnableMakerChecker: Boolean showBaseCurrency: Boolean showMinimumBalanceForInterestAccrual: Boolean showInterestFloatDays: Boolean useExpectedLoanScheduleForFundingSources: Boolean showCompoundingInterestNotCapitalized: Boolean compoundingInterestNotCapitalized: Boolean showFundingSourcesPrincipalRepaymentDelay: Boolean showFundingSourcesNumberOfDelayedPrincipalRepayments: Boolean rateDeterminationStartsBeforeLoanStartDate: Boolean disableFutureRateDetermination: Boolean addOutstandingCompoundingToUtilizedPrincipal: Boolean disableFsAllocationOfFutureRepaymentsPaidFromDeposit: Boolean treatOverdueCompoundingInterestAsPrincipal: Boolean useLastDayOfMonthForShortMonthsInFrequency: Boolean disableFeeNameInput: Boolean } type LoanTerms { id: ID! loanId: ID date: Date! effectiveDate: Date description: String interestRateSettings: InterestRateSettings compoundingInterestRateSettings: InterestRateSettings principalIndexRateSettings: InterestRateSettings interestType: InterestType fixedRepaymentAmount: Float approvedPrincipal: Float approvedPrincipalInBaseCurrency: Float proposedPrincipal: Float netPrincipal: Float revolvingPeriod: Period principalRepaymentFrequency: Frequency interestRepaymentFrequency: Frequency interestAccrualFrequency: Frequency compoundingInterestFrequency: Frequency compoundingInterestRepaymentFrequency: Frequency principalGrace: [Period!] interestGrace: [Period!] compoundingInterestGrace: [Period!] fees: [LoanFee!] @deprecated(reason: "No longer supported") loanPurpose: String amortizationType: AmortizationType customPrincipalAmortization: [AmortizationDefinition!] interestCalculationPeriodType: InterestCalculationPeriodType @deprecated(reason: "No longer supported") restructureRepaymentsAutomatically: Boolean expectedRepaymentsCappedByRelevantDues: Boolean payOutstandingInterestOnLastRepayment: Boolean daysSettings: [DaysSettings!] partialPeriodDaysInYear: Int interestNotRelativeToCompounding: Boolean disableInterestAfterLoanEndDate: Boolean advanceRepaymentsAtStartOfPeriod: Boolean advanceInterestRepaymentsAtStartOfPeriod: Boolean advanceSimpleInterestRepaymentsAtStartOfPeriod: Boolean updateCompoundingOutstandingOnTransaction: Boolean capitalizeOutstandingCompounding: Boolean capitalizeCompoundingIntoPrincipal: Boolean minDaysToFirstRepayment: Int disbursementDayInMonthForRepaymentsDelay: Int noOutstandingResetOnEarlyRedemption: Boolean interestPaymentsPayAccruedAmount: Boolean amortizationPaysPrincipalAndInterest: Boolean payOutstandingCompoundingBeforeNonCapitalized: Boolean minimumBalanceForInterestAccrual: Float interestFloatDays: Int principalIndexDeterminedOnNextRepayment: Boolean paymentOnNonWorkingDaySettings: PaymentOnNonWorkingDaySettings "Relevant holidays calendar for `paymentOnNonWorkingDaySettings`, e.g. `US`, `IL`, `CA` (ISO country code)" holidaysCalendar: String "Defines working days for the loan. Only relevant if `paymentOnNonWorkingDaySettings` is defined" workingDays: WorkingDays draftLoanId: ID loanFundingId: ID draftLoanInformation: JSON capitalizationComponent: CapitalizationComponent deductDisbursementFees: Boolean deductAdvanceSimpleInterestRepaymentFromDisbursement: Boolean interestPaymentRelativeToPrincipalPayment: Boolean principalAmortizationDeterminationEvent: PrincipalAmortizationDeterminationEvent outstandingCompoundingUpdatesPerDisbursement: Boolean fundingTerms: LoanFundingTerms isUpdatedByImport: Boolean creationOpId: ID maturityDate: Date commitmentExpirationDate: Date decreasedCompoundingPaymentLimit: Float decreasedCompoundingPaymentPercentage: Float expectedScheduleEndDate: Date compoundingInterestNotCapitalized: Boolean fundingSourcesPrincipalRepaymentDelay: TimeInterval fundingSourcesNumberOfDelayedPrincipalRepayments: Int } type LoanTransaction { id: ID! canceled: Boolean cancellationDate: Date distribution: InstallmentComponents outstandingLoanBalance: Float date: Date! effectiveDate: Date type: TransactionType note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency loan: Loan loanFunding: LoanFunding rateToBaseCurrency: Float earlyRedemption: Boolean duesCalculationMethod: DuesCalculationMethod isDataOverride: Boolean isOIDOverride: Boolean "Manual schedule values that were set by data override" override: OverrideScheduleRow capitalizationComponent: CapitalizationComponent creationOpId: ID isDebtTransfer: Boolean equityTransaction: EquityTransaction loanFundingDebtSell: LoanFundingDebtSell transactionInput: LoanTransactionInputData oidOverride: OIDRow splittedLoanTransaction: LoanTransaction isPrepayment: Boolean } type LoanTransactionFundingSourcesDistribution { unreconciledBalance: Float loanFundingDistributions: [LoanFundingTransactionDistribution!] } type LoanTransactionInputData { loanId: ID includeDraftChanges: Boolean loanFundingId: ID distribution: InstallmentComponentsInputData deductedPrincipal: Float totalDistribution: Float baseNominalPrincipal: Float date: Date! effectiveDate: Date type: TransactionType! note: String accountNumber: String bankNumber: String checkNumber: String receiptNumber: String routingCode: String currency: Currency rateToBaseCurrency: Float earlyRedemption: Boolean applyExpectedRepaymentsUntilEarlyRedemption: Boolean duesCalculationMethod: DuesCalculationMethod capitalizationComponent: CapitalizationComponent fundingSourcesAllocationDraft: FundingSourcesAllocationDraftInputData relatedFundingEntityTransaction: FundingEntityTransactionInputData relatedEquityTransaction: RelatedEquityTransactionInputData relatedLoanFundingSplitTransactions: [LoanTransactionInputData!] isPrepayment: Boolean } type LoanValuation { id: ID! date: Date! valuation: Float! currency: Currency! methodology: String note: String loan: Loan loanFunding: LoanFunding } type MakeRepaymentsInBulkRecordRawData { date: Date effectiveDate: Date distribution: InstallmentComponents applyTransactionAfterDailyCharges: Boolean note: String } type MetabaseEmbed { url: String } type MultiLoanEquityAllocation { id: ID! equity: Equity! numberOfUnits: Float! fmv: Float! unallocatedUnits: Float! } type MultiStatementsResult { success: Int! failed: Int! } type Mutation { "Create a new client" createClient(data: CreateClientInput!): Client "Update client details" updateClient(id: ID!, data: UpdateClientInput!): Client deactivateClient(id: ID!, note: String): Client reactivateClient(id: ID!, note: String): Client deleteClient(id: ID!, note: String): ID "Create a new pending loan application" createLoan(data: LoanApplicationInput!, parentLoanId: ID): Loan "Update a loan application" modifyLoanApplication(id: ID!, data: LoanApplicationInput!): Loan "Create or update existing loan terms" upsertLoanTerms(loanId: ID!, data: LoanTermsInput!, termsIdToUpdate: ID, isDraft: Boolean): Loan "Update loan general information" updateLoanInfo(loanId: ID!, input: UpdateLoanInfoInput!): Loan "Set loan default events" setLoanDefaultEvents(loanId: ID!, defaultEvents: [DefaultEventInput!]): Loan "Update terms general information" updateLoanTermsInfo(termsId: ID!, input: UpdateLoanTermsInfoInput!): LoanTerms "Manually sets loan's initial outstanding values" setInitialLoanOutstanding(input: SetLoanOutstandingInput!): LoanTransaction "Approve a loan application. This will cause the loan to change status to 'Approved' or 'Active'." approveLoan(data: ApproveLoanInput!): Loan "Activate a loan. This will cause the loan to change status to 'Active'" activateLoan(data: LoanStatusChangeInput!): Loan "Delete a loan. You can only delete non active loans" deleteLoan(id: ID!): ID "Bulk delete loans. You can only delete non active loans." deleteManyLoans(ids: [ID!]): [ID] "Delete loan terms. You can only delete terms additional terms added to a loan." deleteLoanTerms(termsId: ID!): Loan "Undo loan approval. This will revert the loan to be in 'Pending' status." undoLoanApproval(data: LoanStatusChangeInput!): Loan "Undo loan activation. This will revert the loan to be in 'Approved' status." undoLoanActivation(data: LoanStatusChangeInput!): Loan "Reject a loan application. This will cause the loan to change status to 'Rejected'" rejectLoan(data: RejectLoanInput!): Loan "Undo loan rejection. This will revert the loan to be in 'Pending' status." undoLoanRejection(data: LoanStatusChangeInput!): Loan "Recalculate loan's schedule and return the updated loan." updateLoanSchedule(loanId: ID!): Loan "Import many loans in bulk. All loans will be create as 'Pending' loan applications." importLoans(data: [ImportLoanInput!], shouldExecute: Boolean): ImportInfo "Import many loan terms in bulk." importLoanTerms(data: [ImportLoanTermsInput!]!, shouldExecute: Boolean): ImportInfo "Import many loan valuations in bulk. Set one kind of loan/loan funding per import." importLoanValuations(type: ImportType!, data: [ImportLoanValuationInput!]!): ImportInfo "Approve loans in bulk. This will cause the loans to change status to 'Approved' or 'Active' based on it's settings." importLoansApprovals(data: [ApproveLoanByRefIdInput!]!, shouldExecute: Boolean): ImportInfo "Import many loan infos in bulk." importLoanInfo(data: [ImportLoanInfoInput!]!): ImportInfo "Assign funding sources to loans in a bulk" importLoanFundingSources(data: [ImportLoanFundingSourcesInput!]!): ImportInfo "Bulk upload transactions for many loans." importTransactions(transactions: [ImportLoanTransactionInput!], shouldExecute: Boolean): ImportInfo "Bulk upload transactions history for many loans - allows to override schedule outstanding values." importTransactionsHistory(transactions: [ImportLoanTransactionHistoryInput!], shouldExecute: Boolean): ImportInfo "Import expected transactions for a loan." importExpectedScheduleTransactionsForSpecificLoan(loanId: ID!, scheduleId: ID!, data: ImportExpectedTransactionsInput!): ImportInfo importExpectedScheduleTransactions(data: ImportExpectedTransactionsInput!): ImportInfo "Import OID components" importOIDComponents(data: [ImportOIDComponentInput!]!, shouldExecute: Boolean): ImportInfo "Import OID history override for multiple loans." importOIDHistoryOverride(transactions: [ImportOIDHistoryOverrideInput!], isSync: Boolean): ImportInfo "Recalculate effective rate (OID) records" restructureOID(input: OIDRestructureInput!): Loan "Import aging history" importAgingHistory(data: [ImportAgingHistoryInput!]): ImportInfo "Import Expected Deployments" importExpectedDeployments(data: [ExpectedDeploymentInput!]!, isSync: Boolean): ImportInfo "Import Equity" importEquities(data: [ImportEquityInput!]!): ImportInfo "Import Equity Valuations" importEquityValuations(data: [ImportEquityValuationInput!]!, shouldExecute: Boolean): ImportInfo "Rolls back or delete imported items" undoImport(importId: ID!, isRetry: Boolean): ImportInfo "Rolls back or delete imported record" undoImportRecord(importId: ID!, importRecordId: ID!): ImportInfo "Import many clients in bulk." importClients(data: [ImportClientInput!]!, shouldExecute: Boolean): ImportInfo "Import many funding entities in bulk." importFundingEntities(data: [ImportFundingEntityInput!]!, shouldExecute: Boolean): ImportInfo "Import many fees in bulk." importLoanFees(data: [ImportLoanFeeInput!]!, shouldExecute: Boolean): ImportInfo "Import data table rows." importDynamicTableRows(tableId: ID!, input: [ImportDynamicTableRowInput!]!, shouldExecute: Boolean): ImportInfo "Import many transactions for loan funding sources." importLoanFundingTransactions(transactions: [ImportLoanTransactionInput!], shouldExecute: Boolean): ImportInfo "Bulk upload transactions history for many loan funding sources - allows to override schedule outstanding values." importLoanFundingTransactionsHistory(transactions: [ImportLoanTransactionHistoryInput!], shouldExecute: Boolean): ImportInfo "Import OID history override for multiple loan funding sources." importLoanFundingOIDOverride(transactions: [ImportLoanTransactionHistoryInput!], shouldExecute: Boolean): ImportInfo "Import many transactions for loan funding entities." importFundingEntityTransactions(transactions: [ImportFundingEntityTransactionInput!]!, shouldExecute: Boolean): ImportInfo "Import funding source OID components in bulk." importLoanFundingOIDComponentAllocations(data: [ImportLoanFundingOIDComponentAllocationInput!]!, shouldExecute: Boolean): ImportInfo "Import funding source fees in bulk." importLoanFundingFeeAllocations(data: [ImportLoanFundingFeeAllocationInput!]!, shouldExecute: Boolean): ImportInfo "Init early redemption in bulk. Returns ImportInfo with the created records. Can be updated with import info id." initEarlyRedemptionInBulk(data: InitEarlyRedemptionInBulkInput!, importIdToUpdate: ID): ImportInfo "Init make repayments in bulk. Returns ImportInfo with the created records. Can be updated with import info id." initMakeRepaymentsInBulk(data: InitMakeRepaymentsInBulkInput!, importIdToUpdate: ID): ImportInfo "Init close loan in bulk. Returns ImportInfo with the created records. Can be updated with import info id." initCloseLoansInBulk(data: InitCloseLoansInBulkInput!, importIdToUpdate: ID): ImportInfo "Init delete loans in bulk. Returns ImportInfo with the created records. Can be updated with import info id." initDeleteLoansInBulk(data: InitDeleteLoansInBulkInput!, importIdToUpdate: ID): ImportInfo "Execute bulk action" executeBulkAction(importInfoId: ID!): ImportInfo "Save bulk action records" saveBulkActionRecords(importInfoId: ID!, records: [ImportRecordInput!]!): ImportInfo "Upsert loan template" upsertLoanTemplate(loanTemplate: LoanTemplateInput!): LoanTemplate! "Delete loan templates by id's" deleteLoanTemplates(loanTemplatesIds: [ID!]!): [ID!] "Duplicate loan" duplicateLoan(input: DuplicateLoanInput!): ID! createLoanValuation(input: CreateLoanValuationInput!): LoanValuation updateLoanValuation(input: UpdateLoanValuationInput!): LoanValuation deleteLoanValuation(id: ID!, note: String): ID "Create a loan statement document for a specific loan/client" createStatement(entityId: ID!, data: StatementInput!): MultiStatementsResult "Create loan statements for multiple loans, the statements will be sent to the user email address" createMultipleLoanStatements(loanIds: [ID!], filter: LoansFilterInput, data: StatementInput!): MultiStatementsResult "Create client statements for multiple clients, the statements will be sent to the user email address" createMultipleClientStatements(clientIds: [ID!], filter: ClientsFilterInput, data: StatementInput!): MultiStatementsResult "Create statements for loan funding sources or funding entity assets, the statements will be sent to the user email address" createMultipleLoanFundingStatements(filter: LoanFundingsFilterInput!, data: StatementInput!): MultiStatementsResult "Create statements for funding entities, the statements will be sent to the user email address" createMultipleFundingEntityStatements(fundingEntityIds: [ID!], filter: FundingEntitiesFilterInput, data: StatementInput!): MultiStatementsResult "Create a new file entry (file or folder)" createFileEntry(input: CreateFileEntryInput!): FileEntry "Update a file entry. Supports rename, move within hierarchy, and cross-entity move." updateFileEntry(id: ID!, input: UpdateFileEntryInput!): FileEntry "Delete a file entry (file or folder)" deleteFileEntry(id: ID!): ID! "Create a signed upload URL for a new file entry" createFileEntryUploadUrl(input: FileEntryUploadUrlInput!): UploadDocumentOutput! "Create a signed download URL for a file entry. Provide either `fileEntryId` or `storageKey` (S3 download key)." createFileEntryDownloadUrl(fileEntryId: ID, storageKey: String): String! rescheduleLoan(data: LoanRescheduleInput!): Loan deleteInterestUpdate(updateId: ID!): ID createInvestmentEntity(data: CreateInvestmentEntityInput!): InvestmentEntity updateInvestmentEntity(data: UpdateInvestmentEntityInput!): InvestmentEntity closeInvestmentEntity(data: CloseInvestmentEntityInput!): InvestmentEntity reopenInvestmentEntity(data: ReopenInvestmentEntityInput!): InvestmentEntity deleteInvestmentEntity(id: ID!): ID setInvestmentsForInvestmentEntity(investmentEntityId: ID!, data: [InvestmentInput!]!): InvestmentEntity setInvestorsForInvestmentEntity(investmentEntityId: ID!, data: [InvestmentInput!]!): InvestmentEntity cancelInvestment(id: ID!): Investment addCapitalCallTransaction(investmentId: ID!, data: InvestmentTransactionInput!): Investment addDistributionTransaction(investmentId: ID!, data: InvestmentTransactionInput!): Investment addInvestmentTransaction(investmentId: ID!, data: InvestmentTransactionInput!): Investment undoInvestmentTransaction(id: ID!): InvestmentTransaction updateInvestmentTransactionInfo(id: ID!, data: UpdateInvestmentTransactionInfoInput!): InvestmentTransaction makeTransaction(transaction: LoanTransactionInput!): LoanTransaction updateDraftTransaction(transactionId: ID!, input: LoanTransactionInput!): LoanTransaction editTransaction(transactionId: ID!, input: LoanTransactionInput!): LoanTransaction editDataOverrideTransaction(transactionId: ID!, input: EditDataOverrideTransactionInput!): LoanTransaction undoTransaction(transactionId: ID!): LoanTransaction closeLoan(data: CloseLoanInput!): Loan reopenLoan(data: ReopenLoanInput!): Loan "Update transaction general information" updateTransactionInfo(transactionId: ID!, input: UpdateTransactionInfoInput!): LoanTransaction upsertOIDComponent(oidTermsId: ID!, data: OIDComponentInput!): OIDTerms deleteOIDComponent(oidTermsId: ID!, componentId: ID!): OIDTerms upsertExpectedRepayment(scheduleId: ID!, input: ExpectedRepaymentUpdateInput!): Loan deleteExpectedRepayment(scheduleId: ID!, input: DeleteExpectedRepaymentInput!): Loan deleteExpectedRepaymentUpdate(id: ID!): Loan resetExpectedRepaymentUpdates(scheduleId: ID!): Loan deleteExpectedDeployments(loanId: ID!): Loan setTenantGlobalSettings(settings: GlobalSettingsInput!): GlobalSettings setTenantAdminGlobalSettings(settings: AdminGlobalSettingsInput!): GlobalSettings setTenantTranslations(translations: JSON!): GlobalSettings updateCurrenciesTable(currencies: [CurrencySettingInput!]!): [CurrencySetting!] addTenantCurrency(currency: Currency!): [CurrencySetting!] deleteTenantCurrency(currency: Currency!): [CurrencySetting!] calculateHistoricalKPIs: AsyncUpdate! createStatementTemplateUploadUrl(name: String!, sizeInBytes: Int!): UploadDocumentOutput createStatementPreviewTemplateUploadUrl(name: String!, sizeInBytes: Int!): UploadDocumentOutput setStatementTemplates(templates: [DocumentTemplateInput!]!): [DocumentTemplate!] setFloatingRates(floatingRates: [FloatingRateInput!]!): [FloatingRate!] setFloatingRatesNames(floatingRates: [FloatingRateNameInput!]!): [FloatingRate!] setFloatingRateValues(floatingRateId: ID!, input: FloatingRateValuesInput!): FloatingRate! fetchFloatingRates(floatingRateId: ID): [FetchFloatingRateResult!]! createWorkflowBoard(input: CreateWorkflowBoardInput!): WorkflowBoard updateWorkflowBoard(input: UpdateWorkflowBoardInput!): WorkflowBoard deleteWorkflowBoard(id: ID!): ID createWorkflowStage(input: CreateWorkflowStageInput!): WorkflowStage updateWorkflowStage(input: UpdateWorkflowStageInput!): WorkflowStage deleteWorkflowStage(id: ID!): ID moveWorkflowStage(id: ID!, position: Int!): WorkflowStage createWorkflowCard(input: CreateWorkflowCardInput!): WorkflowCard updateWorkflowCard(input: UpdateWorkflowCardInput!): WorkflowCard deleteWorkflowCard(id: ID!, options: DeleteWorkflowCardOptions): ID moveWorkflowCard(id: ID!, stageId: ID!, position: Int): WorkflowCard assignLoanFundingSources(input: AssignLoanFundingSourcesInput!): Loan createEquity(input: EquityInput!): Equity updateEquityInfo(input: UpdateEquityInfoInput!): Equity createEquityTransaction(input: CreateEquityTransactionInput!, createFMV: Boolean): EquityTransaction deleteEquityTransaction(id: ID!, note: String): ID createEquityExpectedTransaction(input: CreateEquityTransactionInput!): EquityTransaction updateEquityExpectedTransaction(input: UpdateEquityTransactionInput!): EquityTransaction deleteEquityExpectedTransaction(id: ID!, note: String): ID createEquityValuation(input: CreateEquityValuationInput!): EquityValuation updateEquityValuation(input: UpdateEquityValuationInput!): EquityValuation deleteEquityValuation(id: ID!, note: String): ID createEquityAllocation(input: CreateEquityAllocationInput!): EquityAllocation updateEquityAllocation(input: UpdateEquityAllocationInput!): EquityAllocation deleteEquityAllocation(id: ID!, note: String): ID approveEquity(id: ID!, note: String, activate: Boolean): Equity undoEquityApproval(id: ID!, note: String): Equity rejectEquity(id: ID!, note: String): Equity undoEquityRejection(id: ID!, note: String): Equity activateEquity(id: ID!, note: String): Equity undoEquityActivation(id: ID!, note: String): Equity exerciseEquity(input: ExerciseEquityInput!): Equity undoExerciseEquity(exerciseEntryId: ID!, note: String): ID closeEquity(id: ID!, note: String, closingDate: Date): Equity undoEquityClosing(id: ID!, note: String): Equity deleteEquity(id: ID!, note: String): ID recalculateEquitiesSummary: Boolean assignEquityFundingSources(input: AssignEquityFundingSourcesInput!): Equity createNote(input: CreateNoteInput!): Note updateNote(input: UpdateNoteInput!): Note deleteNote(id: ID!): ID createLoanFee(input: LoanFeeInput!, loanId: ID!): LoanFee updateLoanFee(input: LoanFeeInput!): LoanFee deleteLoanFee(id: ID!): ID createDynamicTable(input: CreateDynamicTableInput!): DynamicTable updateDynamicTable(input: UpdateDynamicTableInput!): DynamicTable updateDynamicTableLock(input: UpdateDynamicLockInput!): DynamicTable deleteDynamicTable(id: ID!): ID createDynamicProperty(input: CreateDynamicPropertyInput!): DynamicProperty updateDynamicProperty(input: UpdateDynamicPropertyInput!): DynamicProperty updateDynamicPropertiesLock(input: [UpdateDynamicLockInput!]!): [DynamicProperty] deleteDynamicProperty(id: ID!): ID upsertDynamicTableRow(tableId: ID!, entityId: ID, rowId: ID, data: JSON!): DynamicTable deleteDynamicTableRow(tableId: ID!, rowId: ID!, allVersions: Boolean): ID updateOIDDateLock(date: Date!, note: String): Date createFundingEntity(input: CreateFundingEntityInput!): FundingEntity updateFundingEntity(input: UpdateFundingEntityInput!): FundingEntity deleteFundingEntity(id: ID!, note: String): ID deactivateFundingEntity(id: ID!, note: String): FundingEntity reactivateFundingEntity(id: ID!, note: String): FundingEntity upsertLoanFundingTerms(input: LoanTermsInput!, id: ID, dealId: ID): LoanFunding deleteLoanFundingTerms(id: ID!): ID updateLoanFundingInfo(input: UpdateLoanFundingInfoInput!): LoanFunding deleteLoanFunding(id: ID!): ID allocateFundingSources(input: FundingSourcesAllocationDraftInput!): FundingSourcesAllocationDraft undoFundingSourcesAllocation(id: ID!): FundingSourcesAllocationDraft upsertFundingSourcesAllocationDraft(input: FundingSourcesAllocationDraftInput!): FundingSourcesAllocationDraft deleteFundingSourcesAllocationDraft(id: ID!): ID calculateLoanFundingSources(assetId: ID!): ID createFundingEntityTransaction(input: FundingEntityTransactionInput!): FundingEntityTransaction distributeLoanFundingReturns(input: [FundingEntityTransactionInput!]!): [FundingEntityTransaction] updateFundingEntityTransactionInfo(input: UpdateFundingEntityTransactionInfoInput!): FundingEntityTransaction undoFundingEntityTransaction(id: ID!): FundingEntityTransaction initLoanFundingDebtSell(input: LoanFundingDebtSellInput!, existingDebtSellId: ID): LoanFundingDebtSell updateLoanFundingDebtSellComponents(loanFundingDebtSellId: ID!, sellComponents: [DebtSellComponentInput!]!): LoanFundingDebtSell sellLoanFundingDebt(input: SellLoanFundingDebtInput!): LoanFunding executeLoanFundingDebtSell(id: ID!): LoanFundingDebtSell undoLoanFundingDebtSell(id: ID!): LoanFundingDebtSell deleteLoanFundingDebtSell(id: ID!): ID upsertLoanFundings(input: UpsertLoanFundingsInput!): [LoanFunding] upsertLoanFundingFee(input: LoanFeeInput!): LoanFee deleteLoanFundingFee(id: ID!): ID createFundingSourceTemplate(input: LoanFundingTemplateInput!): LoanFundingTemplate updateFundingSourceTemplate(id: ID!, input: LoanFundingTemplateInput!): LoanFundingTemplate deleteFundingSourceTemplate(id: ID!): ID createBroker(input: CreateBrokerInput!): Broker updateBroker(id: ID!, input: UpdateBrokerInput!): Broker deleteBroker(id: ID!): ID deleteBrokers(ids: [ID!]!): [ID!] createDataApplicationTemplate(input: DataApplicationTemplateInput!): DataApplicationTemplate updateDataApplicationTemplate(id: ID!, input: DataApplicationTemplateInput!): DataApplicationTemplate deleteDataApplicationTemplates(ids: [ID!]!, note: String): [ID!] createGenericDataApplication(input: CreateGenericDataApplicationInput!): GenericDataApplication! deleteGenericDataApplications(ids: [ID!]!): [ID!] archiveGenericDataApplications(ids: [ID!]!): [ID!] restoreGenericDataApplications(ids: [ID!]!): [ID!] createDataApplications(input: CreateDataApplicationInput!): [DataApplication!] updateDataApplication(id: ID!, input: UpdateDataApplicationInput!): DataApplication updateGenericDataApplication(id: ID!, input: UpdateGenericDataApplicationInput!): GenericDataApplication deleteDataApplications(ids: [ID!]!): [ID!] archiveDataApplications(ids: [ID!]!): [ID!] restoreDataApplications(ids: [ID!]!): [ID!] setDataApplicationsStatus(ids: [ID!]!, status: DataApplicationStatus!): [DataApplication]! undoReviewedDataApplications(ids: [ID!]!): [DataApplication]! setSectionVerificationStatus(id: ID!, sectionKey: String!, verified: Boolean!): DataApplication exportDataApplication(id: ID!): DocumentResult bulkExportDataApplication(id: [ID!]!): DocumentResult setDataApplicationResponse(id: ID!, data: [FormDataInput!]!): DataApplication setPublicDataApplicationResponse(id: ID!, data: [FormDataInput!]!): DataApplication submitPublicDataApplication(id: ID!): DataApplication createDataApplicationFromGeneric(id: ID!, input: CreateDataApplicationFromGenericInput!): DataApplication! createDataApplicationFileUploadUrls(id: ID!, input: [DataApplicationFileInput!]!): [UploadDocumentOutput] createView(input: ViewInput!): View updateView(id: ID!, input: UpdateViewInput!): View deleteView(id: ID!): ID updateUserNotificationReadStatus(userNotificationId: ID!, status: Boolean!): UserNotification! markUserNotificationsAsRead: [UserNotification!]! createGroupLoan(input: GroupLoanInput!): Loan updateGroupLoanSchedule(loanId: ID!): ID updateEffectiveRateRestructureDateStatus(input: UpdateEffectiveRateRestructureDateStatusInput!): OIDTerms updateUserNotificationSettings(input: UserNotificationsSettingsInput!): AuthUser updateChangeRequestAsMaker(input: ChangeRequestMakerUpdateInput!): ChangeRequest! updateChangeRequestAsChecker(input: ChangeRequestCheckerUpdateInput!): ChangeRequest! requestChangeApproval(changeRequestId: ID!): ChangeRequest! requestChangeRequestUpdate(changeRequestId: ID!): ChangeRequest! rejectChangeRequest(changeRequestId: ID!, reason: String): ChangeRequest! undoRejectChangeRequest(changeRequestId: ID!): ChangeRequest! approveChangeRequest(changeRequestId: ID!): ChangeRequest! createEntityChangeRequestComment(entityChangeId: ID!, comment: JSON!): EntityChangeRequest! editEntityChangeRequestComment(commentId: ID!, comment: JSON!): EntityChangeRequest! deleteEntityChangeRequestComment(commentId: ID!): ID! deleteEntityChangeRequests(entityChangeIds: [ID!]!): [ID!]! "Create a new deal" createDeal(input: CreateDealInput): Deal! "Delete a deal" deleteDeal(dealId: ID!): ID! "Update a deal" updateDeal(dealId: ID!, input: UpdateDealInput!): Deal "Send a message in deal onboarding" sendChatMessage(dealId: ID!, content: String!): ChatMessage "Send term feedback for a deal" sendDealOnboardingTermFeedback(dealId: ID!, input: DealTermFeedbackInput!): DealOnboardingTermFeedbackResult! } type Note { id: ID! text: String createdBy: User updatedBy: User createdAt: DateTime updatedAt: DateTime relatedFieldId: String } type Notification { id: ID! type: NotificationType! metadata: NotificationMetadata! entityType: NotificationEntityType entityId: ID createdAt: DateTime! } type NotificationEventSettings { daysOffset: Int! enabled: Boolean! eventType: UserNotificationEventType! } type NotificationMetadata { downloadKey: String fileName: String formName: String formStatus: DataApplicationStatus brokerName: String borrowerName: String numberOfDays: Int bulkActionType: String statementName: String statementDate: Date userName: String changeRequestId: ID loanName: String date: Date totalAmount: Float numberOfEntities: Int currency: String } type OIDBreakdownRow { name: String amount: Float amortized: Float unamortized: Float } type OIDComponent { id: ID! createdAt: DateTime name: String date: Date! value: Float type: OIDComponentType description: String loan: Loan allocateToLoanFundings: Boolean decreaseRemainingCost: Boolean initialAmortizedAmount: Float } type OIDRestructureEvent { id: ID! name: String! effectiveDate: Date! date: Date! newRate: Float relatedEntityId: ID relatedEntityType: OIDRestructureEventEntityType isActive: Boolean } type OIDRow { rate: Float amount: Float totalWithInterest: Float remainingCost: Float indexedRemainingCost: Float breakdown: [OIDBreakdownRow!] } type OIDSummary { amount: Float interest: Float } type OIDTerms { id: ID! method: OIDMethod date: Date components: [OIDComponent!] daysInYear: DaysInYear daysInMonth: DaysInMonth amortizeCompoundingInterest: Boolean frequency: Frequency nonAccrualPeriods: [Period!] useExpectedSchedule: Boolean fundingTerms: LoanFundingOidTerms } type OIDTermsTemplate { method: OIDMethod methodOptions: [OIDMethod!]! daysInYear: DaysInYear daysInMonth: DaysInMonth componentNames: [String!] amortizeCompoundingInterest: Boolean useExpectedSchedule: Boolean frequency: Frequency } type OverrideScheduleRow { "Sets OID values according to `oid`" oid: OIDRow "Sets outstanding values according to `outstanding`" outstanding: InstallmentComponents "Sets due values according to `due`" due: InstallmentComponents "Sets interest charged on period value" interestChargedOnPeriodOverride: Float "Sets compounding interest charged on period value" compoundingChargedOnPeriodOverride: Float "Sets the calculated realized principal" realizedPrincipal: Float } type PaginatedAuditEntries { totalFilteredRecords: Int pageItems: [AuditEntry!]! } type PaginatedBrokers { totalFilteredRecords: Int pageItems: [Broker!]! } type PaginatedChangeRequests { totalFilteredRecords: Int pageItems: [ChangeRequest!]! } type PaginatedClients { totalFilteredRecords: Int pageItems: [ClientExtended!]! } type PaginatedDataApplicationTemplates { totalFilteredRecords: Int pageItems: [DataApplicationTemplate!]! } type PaginatedDataApplications { totalFilteredRecords: Int pageItems: [DataApplication!]! } type PaginatedDeals { totalFilteredRecords: Int! pageItems: [Deal!]! } type PaginatedDynamicTableRows { totalFilteredRecords: Int! pageItems: [JSON!]! } type PaginatedDynamicTables { totalFilteredRecords: Int pageItems: [DynamicTableMetadata!]! } type PaginatedEquities { totalFilteredRecords: Int pageItems: [Equity!]! } type PaginatedEquity { totalFilteredRecords: Int pageItems: [Equity!]! } type PaginatedFundingEntities { totalFilteredRecords: Int pageItems: [FundingEntity!]! } type PaginatedGenericDataApplications { totalFilteredRecords: Int pageItems: [GenericDataApplication!]! } type PaginatedImportInfos { totalFilteredRecords: Int pageItems: [ImportInfo!]! } type PaginatedImportedEntities { totalRecords: Int pageItems: [ImportEntity!]! } type PaginatedInvestmentEntities { totalFilteredRecords: Int pageItems: [InvestmentEntity!]! } type PaginatedInvestmentTransactions { totalFilteredRecords: Int pageItems: [InvestmentEntityTransaction!]! } type PaginatedLoanFundingTemplates { pageItems: [LoanFundingTemplate!]! totalFilteredRecords: Int } type PaginatedLoanFundings { totalFilteredRecords: Int pageItems: [LoanFunding!]! } type PaginatedLoans { totalFilteredRecords: Int pageItems: [Loan!]! } type PaginatedTransactionVerification { totalFilteredRecords: Int pageItems: [TransactionVerification!]! } type PaginatedUserNotifications { totalFilteredRecords: Int pageItems: [UserNotification!]! } type PaginatedWorkflowCard { totalFilteredRecords: Int! pageItems: [WorkflowCard!]! } type Period { startDate: Date relativeStartDate: RelativeDate endDate: Date timeInterval: FrequencyEveryEnum timeIntervalMultiplier: Int } type PieValues { total: Float values: [GraphValue!]! } type PortfolioOverview { totalDisbursement: Float totalFees: Float totalInterest: Float totalCompoundingInterest: Float activeTotal: Float activeLoans: Int pendingTotal: Float pendingLoans: Int overdueTotal: Float overdueLoans: Int } type Query { "Get a single client by ID" client(id: ID!): Client! "Get paginated list of clients with optional filtering and sorting" clients(skip: Int = 0, limit: Int, filter: ClientsFilterInput, sortBy: ClientsSortByInput): PaginatedClients "Get clients overview statistics as pie chart values" clientsOverview: PieValues "Get clients trend data over time for the specified aggregation period" clientsTrend(period: AggregationPeriod!): [ClientGraphValue!]! "Get custom document templates available for clients" clientCustomDocuments: [CustomDocumentTemplate] "Get the currently authenticated user's information" me: AuthUser "Get list of users with optional filtering" users(filter: UsersFilterInput): [User!]! "Get paginated list of notifications for the current user" userNotifications(filter: NotificationsFilterInput!, skip: Int = 0, limit: Int): PaginatedUserNotifications! "Get a single loan by ID" loan(id: ID!): Loan "Get paginated list of loans with optional filtering and sorting" loans(filter: LoansFilterInput, skip: Int = 0, limit: Int = 15, sortBy: LoansSortByInput): PaginatedLoans "Get loan schedule generation input data for a specific schedule (super user only)" getLoanScheduleGenerationInput(scheduleId: ID!): JSON "Get a single loan transaction by ID" loanTransaction(id: ID!): LoanTransaction "Get all available loan prodcut templates" loanTemplates: [LoanTemplate!] "Get loan daily schedule rows based on the provided input" getLoanScheduleDueRows(data: GetLoanScheduleDueRowsInput!): [LoanScheduleRow!] "Calculate interest rates for a date range based on rate settings" getInterestRates(settings: InterestRateSettingsInput!, nonWorkingDaysSettings: NonWorkingDaysSettingsInput, from: Date!, to: Date): [InterestRateData!] "Get Metabase embed URL for portfolio performance dashboard" portfolioPerformanceMetabase: MetabaseEmbed "Get portfolio overview statistics and metrics" portfolioOverview: PortfolioOverview "Get portfolio levelallocation data grouped by the specified parameter" allocation(allocateBy: AllocationParameter!): [AllocationGraphValue!] "Get portfolio level outstanding loan amounts over time" outstanding: [GraphValue!] "Search across loans, clients, equities, investments, and funding entities" search(searchInput: String!, limit: Int = 10): [SearchResult!] "Get Metabase dashboard embed URL for a specific dashboard ID" getMetabaseDashboardUrl(dashboardId: String!): MetabaseEmbed "Get list of available report dashboards" reportDashboards: [ReportDashboard!] "Get a single floating rate by ID" floatingRate(id: ID!): FloatingRate "Get all floating rates" floatingRates: [FloatingRate!]! "Preview loan schedule after applying new input" getLoanReschedulePreview(data: LoanRescheduleInput!): LoanSchedule "Preview loan schedule after applying transactions" getLoanTransactionPreview(data: [LoanTransactionInput!]!, transactionIdsToIgnore: [ID!]): LoanSchedule "Preview loan schedule after applying loan terms" getLoanTermsPreview(data: LoanTermsPreviewInput!): LoanSchedule "Preview loan schedule for a new loan application" getLoanApplicationPreview(data: LoanApplicationPreviewInput!): LoanSchedule "Get preview of loan schedule daily rows based on preview input" getLoanSchedulePreviewDueRows(data: GetLoanSchedulePreviewDueRowsInput!): [LoanScheduleRow!] getDraftSchedulePreview(changeRequestId: ID!): LoanSchedule getDraftSchedulePreviewDueRows(data: DraftScheduleDueRowsInput!, changeRequestId: ID!): [LoanScheduleRow!] "Calculate gross amount for a loan application" calculateLoanApplicationGrossAmount(data: LoanApplicationInput!): Float "Calculate the remaining principal that can be disbursed on a loan for a given date." calculatedAvailableDisbursementAmount(input: CalculatedAvailableDisbursementAmountInput!): Float "Get paginated list of investment entities with optional filtering" investmentEntities(filter: InvestmentEntitiesFilterInput, skip: Int = 0, limit: Int = 15): PaginatedInvestmentEntities "Get a single investment entity by ID" investmentEntity(id: ID!): InvestmentEntity "Get paginated list of transactions for an investment entity" investmentEntityTransactions(investmentEntityId: ID!, skip: Int = 0, limit: Int = 100): PaginatedInvestmentTransactions! "Get a single investment by ID" investment(id: ID!): Investment "Get all currencies configured for the tenant" tenantCurrencies: [CurrencySetting!] "Get current exchange rates for all currencies relative to base currency" actualCurrencyRates(baseCurrency: Currency!): [CurrencySetting!] "Get global settings for the tenant" globalSettings: GlobalSettings "Get paginated list of audit log entries with optional filtering" audits(skip: Int = 0, limit: Int = 20, filter: AuditsFilterInput): PaginatedAuditEntries! "Get import information by ID" importInfo(id: ID!): ImportInfo "Get paginated list of import records with optional filtering" importInfos(skip: Int = 0, limit: Int = 15, filter: ImportsFilterInput): PaginatedImportInfos! "Verify import transactions and return validation results" verifyImportTransactions(transactions: [LoanTransactionVerificationInput!]!, skip: Int = 0, limit: Int = 15): PaginatedTransactionVerification! "Get a single workflow board by ID" workflowBoard(id: ID!): WorkflowBoard "Get all workflow boards" workflowBoards: [WorkflowBoard!] "Get all stages for a workflow board" workflowStages(boardId: ID!): [WorkflowStage!] "Get paginated list of workflow cards with filtering" workflowCards(filter: WorkflowCardsFilterInput!, skip: Int = 0, limit: Int = 20): PaginatedWorkflowCard! "Get a single workflow card by ID" workflowCard(id: ID!): WorkflowCard! "Get a single equity by ID" equity(id: ID!): Equity "Get paginated list of equities with optional filtering" equities(filter: EquitiesFilterInput, skip: Int = 0, limit: Int = 100): PaginatedEquity "Get loan repayment distribution breakdown for a transaction" getLoanRepaymentDistribution(input: GetLoanRepaymentDistributionInput!): InstallmentComponents "Get loan repayment distribution from nominal principal amount" getLoanRepaymentDistributionFromNominalPrincipal(loanId: ID!, date: Date!, nominalPrincipal: Float!, duesCalculationMethod: DuesCalculationMethod, isPrepayment: Boolean): InstallmentComponents "Get statement templates by type" statementTemplates(type: DocTemplateType): [DocumentTemplate!] "Get file entries for an entity, optionally including file entries from related entities" fileEntries(filter: FileEntriesFilterInput!): [EntityFileEntries!]! "Read text content of a PDF FileEntry as UTF-8 text. Best for SMALL documents (~10 pages); larger inputs are truncated. Only PDF files are supported (other extensions throw UserInputError). `startPage`/`endPage` select a page range (max 3-page span; `endPage` defaults to `startPage`). Text capped at 40,000 chars (~10 pages, ~10k tokens); truncation flagged via `textWasTruncated`." getFileEntryContent(fileEntryId: ID!, startPage: Int, endPage: Int): FileEntryContent! "Get metadata for a single dynamic data table" dynamicTable(dynamicTableId: ID!): DynamicTableMetadata! "Get paginated list of dynamic data tables" dynamicTables(input: GetDynamicTablesInput): PaginatedDynamicTables! "Get paginated list of rows for a dynamic data table" dynamicTableRows(dynamicTableId: ID!, searchString: String, mainRowsOnly: Boolean = true, skip: Int = 0, limit: Int): PaginatedDynamicTableRows! "Get grouped dynamic data tables by category" dynamicTablesGroups: DynamicTableGroups! "Get a single funding entity by ID" fundingEntity(id: ID!): FundingEntity "Get paginated list of funding entities with optional filtering and sorting" fundingEntities(filter: FundingEntitiesFilterInput, skip: Int = 0, limit: Int = 100, sortBy: FundingEntitiesSortByInput): PaginatedFundingEntities "Get a single loan funding (funding source) by ID" loanFunding(id: ID!): LoanFunding "Get paginated list of loan fundings (funding sources) with optional filtering" loanFundings(filter: LoanFundingsFilterInput, skip: Int = 0, limit: Int = 100): PaginatedLoanFundings "Get a single loan funding (funding source) debt sell by ID" loanFundingDebtSell(id: ID!): LoanFundingDebtSell "Get funding sources distribution for a loan transaction" getLoanTransactionFundingSourcesDistribution(input: LoanTransactionInput!, replacedLoanTransactionId: ID): LoanTransactionFundingSourcesDistribution "Get a single funding source terms template by ID" fundingSourceTemplate(id: ID!): LoanFundingTemplate "Get paginated list of funding source terms templates with optional filtering" fundingSourceTemplates(filter: LoanFundingTemplateFilterInput, skip: Int = 0, limit: Int = 100): PaginatedLoanFundingTemplates! "Get a single broker by ID" broker(id: ID!): Broker "Get paginated list of brokers with optional filtering" brokers(filter: BrokersFilterInput, skip: Int = 0, limit: Int = 100): PaginatedBrokers "Get a single data application (borrower form) template by ID" dataApplicationTemplate(id: ID!): DataApplicationTemplate "Get paginated list of data application (borrower form) templates with optional filtering" dataApplicationTemplates(skip: Int = 0, limit: Int, filter: DataApplicationTemplatesFilterInput): PaginatedDataApplicationTemplates "Get a single data application (borrower form) by ID" dataApplication(id: ID!): DataApplication "Get paginated list of data applications (borrower forms) with optional filtering" dataApplications(filter: DataApplicationsFilterInput, skip: Int = 0, limit: Int = 100): PaginatedDataApplications "Get a single generic data application (borrower form) by ID" genericDataApplication(id: ID!): GenericDataApplication "Get paginated list of generic data applications (borrower forms) with optional filtering" genericDataApplications(filter: GenericDataApplicationsFilterInput, skip: Int = 0, limit: Int = 100): PaginatedGenericDataApplications "Get data application (borrower form) by URL key (public access)" dataApplicationByUrlKey(urlKey: String!): UnifiedDataApplication "Get views by type" views(type: ViewType!): [View] "Get paginated list of change requests with optional filtering" changeRequests(skip: Int = 0, limit: Int, filter: ChangeRequestFilterInput): PaginatedChangeRequests "Get a single change request by ID" changeRequest(id: ID!): ChangeRequest "Get entity change request by ID" entityChangeRequest(id: ID!): EntityChangeRequest "Generate and execute a GraphQL query from natural language. currentPath provides context for understanding references like 'this loan' or 'current client'" aiQuery(query: String!, currentPath: String): JSON "Get a single deal by ID" deal(id: ID!): Deal "Get all deals" deals(skip: Int = 0, limit: Int = 20, filter: DealsFilterInput, searchString: String, sortBy: DealsSortByInput): PaginatedDeals! } type RatesProviderCredentials { bloomberg: BloombergCredentials } type RelatedEquityTransactionInputData { equityId: ID equityType: EquityType equityName: String equityCurrency: Currency clientId: ID type: EquityTransactionType! date: Date! currency: Currency! rateToBaseCurrency: Float pricePerUnit: Float! numberOfUnits: Float! createFMV: Boolean description: String } type RelatedInvestmentTarget { id: ID! name: String type: RelatedInvestmentTargetType! } type RelativeDate { type: RelativeDateType timeUnit: FrequencyEveryEnum amount: Int } type ReminderSetting { enabled: Boolean reminderInterval: Int reminderEvery: FrequencyEveryEnum repetitions: Int } type ReportDashboard { "Metabase dashboard url" dashboard: MetabaseEmbed "Dashboard title" label: String } type ReportDashboardSettings { label: String dashboardId: String } type StatementFilesNaming { client: ClientStatementFileNameOptions! loan: LoanStatementFileNameOptions! loanFunding: LoanFundingStatementFileNameOptions! fundingEntity: FundingEntityStatementFileNameOptions! } "A batch (flow) of statements generated for one entity type, tracking its records through the generate, review, and send lifecycle." type StatementProcess { id: ID! "Doc template used to generate the statements in this process." templateId: ID! "The entity type all records in this process are generated for." entityType: StatementEntityType! "Aggregate status derived from the statuses of the contained records." status: StatementProcessStatus! "Editable display name for the statement flow." name: String! "Output format of the generated statement files (PDF or DOCX)." documentType: DocumentType! "Statement date applied to every record in the process." date: Date! "Optional - transactions list only includes transactions after this date." transactionsFromDate: Date "Optional - interest due rows are included from this date up to the statement date." interestRowsFromDate: Date "Optional - generate statements for a specific investor, with payments affected by commitment percentage." investorId: ID "The individual statement records that make up this process." records: [StatementProcessRecord!]! "When the statement process was created." createdAt: DateTime! "The user who created the statement process." createdBy: User! } "A single statement within a statement process, tracking its file, recipients, email content, status, and audit history." type StatementProcessRecord { id: ID! "The primary entity this statement was generated for." entity: StatementProcessEntity! "For funding source statement generation, the related funding entity." secondaryEntity: StatementProcessEntity "Lifecycle status of this individual record." status: StatementProcessRecordStatus! "Output format of this record's generated file (PDF or DOCX)." documentType: DocumentType! "Statement date for this record." date: Date! "Name of the generated statement file." fileName: String! "Email addresses the statement will be sent to." recipients: [String!] "Subject line of the statement email." emailSubject: String "Optional note included in the body of the statement email." emailBody: String "The generated statement file." generatedFile: FileEntry "Audit trail of actions taken on this record (created, generated, reviewed, sent, etc.)." auditEntries: [AuditEntry!] } type Subscription { workflowUpdates(boardId: ID!): WorkflowEvent "Returns the count of new notifications for the specified user" newNotification(userId: ID!): UserNotification "Notifies when a new message is added to a deal onboarding" dealOnboardingMessageAdded(dealId: ID!): ChatMessage! "Notifies when a deal is updated during onboarding" dealOnboardingUpdate(dealId: ID!): DealUpdate! "Notifies about deal onboarding agent status changes" dealOnboardingAgentStatus(dealId: ID!): DealAgentStatus! } type TaxRules { id: ID! date: Date! vat: Float! vatApplyOnFee: Boolean vatApplyOnInterest: Boolean } type TemplateFloatingRate { id: ID! name: String } type TimeInterval { timeInterval: FrequencyEveryEnum timeIntervalMultiplier: Int } type TransactionVerification { transactionIndex: Int! transaction: ImportLoanTransaction! loan: Loan matchingRepayment: LoanScheduleRow status: TransactionVerificationStatus! errorDescription: String } "Upload document signed url return object" type UploadDocumentOutput { "The signed url to upload the document" url: String! "The document key to provide in the request" key: String! "Other required fields to include in the request" fields: JSON! } type User { id: ID! name: String! email: String profilePictureUrl: String deleted: Boolean } type UserComment { id: ID! comment: JSON user: User! createdAt: DateTime! } type UserNotification { id: ID! notification: Notification! user: User! isRead: Boolean! createdAt: DateTime! } type UserNotificationsSettings { loanScope: NotificationScope! emailDigestFrequency: NotificationEmailDigestFrequency! events: [NotificationEventSettings!]! } type ValueAIReasoning { text: String attachments: [DocumentAttachment!] } type View { id: ID! name: String! type: ViewType! category: ViewCategory! options: JSON! isDefault: Boolean! } type WorkflowBoard { id: ID! title: String! stages: [WorkflowStage!] properties: [DynamicProperty!] } type WorkflowCard { id: ID! title: String! position: Int! stage: WorkflowStage! propertyValues: [WorkflowCardProperty!] freeText: JSON archived: Boolean! client: Client owner: User fileEntriesCount: Int loan: Loan equity: Equity loanAmount: Float broker: Broker dataApplications: [DataApplication!] dataApplicationsCount: Int createdAt: DateTime! updatedAt: DateTime! stageUpdatedAt: DateTime timeInStageDescription: String } type WorkflowCardProperty { id: ID! boardProperty: DynamicProperty! value: JSON } type WorkflowEventAddCard { type: WorkflowEventType publisherSessionId: ID stageId: ID! card: WorkflowCard! } type WorkflowEventMoveCard { type: WorkflowEventType publisherSessionId: ID fromStageId: ID! toStageId: ID! cardId: ID! position: Int! } type WorkflowEventRemoveCard { type: WorkflowEventType publisherSessionId: ID stageId: ID! cardId: ID! } type WorkflowEventUpdateCard { type: WorkflowEventType publisherSessionId: ID stageId: ID! card: WorkflowCard! } type WorkflowEventUpdateCards { type: WorkflowEventType publisherSessionId: ID stageId: ID! cards: [WorkflowCard!]! } type WorkflowEventUpdateStage { type: WorkflowEventType publisherSessionId: ID stage: WorkflowStage! } type WorkflowEventUpdateStages { type: WorkflowEventType publisherSessionId: ID stages: [WorkflowStage!]! } type WorkflowStage { id: ID! title: String! position: Int! board: WorkflowBoard! cards(filter: WorkflowCardsFilterInput): [WorkflowCard!] } type WorkingDays { sunday: Boolean monday: Boolean tuesday: Boolean wednesday: Boolean thursday: Boolean friday: Boolean saturday: Boolean }