Boarding Loans
High-Level Walkthrough
The following steps can be used to board loans:
- End users initiate, underwrite, and decision applications using Workflows in Sageworks.
- End users prepare documents for decisioned loans.
- End user signifies loan ready to be boarded within the UI.
- Get loan boarding events.
- Get Proposed Loan File for loan and all related information.
- Board to core.
- Update loanBoardingIdentifier (Optional).
- Associate proposed loan with the portfolio loan (Optional).
- Close loan boarding events on all successfully boarded loans.
User Signifies A Loan Is Ready For Boarding
Users will complete Workflows in Sageworks to underwrite, decision, and prepare documents for loans to be boarded to core. When all required workflow steps are completed for boarding, the user will navigate to Administration > Loan Boarding > Select the customer and loan > complete additional required information > then click "Board Loan to Core". This will then create a loan boarding event which can be leveraged in conjunction with a timed job to find all loans to be boarded.
Get Loan Boarding Events
The endpoint GET /v1/events can be polled to get all events. The event type loanBoardedEvent can be specified as a filter to limit the payload to loans that are ready to be boarded.
Loan boarding events can also be pushed via webhook. See here for more details .
curl -X GET "https://api.sageworks.com/v1/events?eventType=loanBoardedEvent" -H "accept: application/json"[
{
"id": 125464545,
"eventTime": "2021-08-01",
"eventType": "loanBoardedEvent",
"eventContent": {
"ProposedLoanId": "654321"
},
"isComplete": false
},
{
"id": 125464546,
"eventTime": "2021-08-03",
"eventType": "loanBoardedEvent",
"eventContent": {
"ProposedLoanId": "654321"
},
"isComplete": false
}
]Use Get proposed-loan-file for loan and all related information
The endpoint GET /v1/proposed-loan-file/{proposedLoanId} may be leveraged to get the proposed loan as well as the related customer and collateral information.
curl -X GET "https://api.sageworks.com/v1/proposed-loan-file/{proposedLoanId}" -H "accept: application/json" -H "authorization: Bearer {token}"{
"proposedLoan": {
"id": 1884007,
"loanId": null,
"loanName": "ProposedLoanFile",
"customerId": 85477283,
"loanAmount": 82923,
"riskRating": 0,
"paymentAmount": 0,
"paymentFrequency": "monthly",
"paymentType": "fixedPayment",
"loanOfficerId": null,
"interestRate": 0,
"callCode": "",
"collateralCode": "",
"loanTypeCode": "",
"productCode": "",
"purposeCode": "",
"industryCode": "",
"adjustableInterestRate": false,
"loanTerm": 0,
"dayCountConvention": null,
"amortizedOver": null,
"isDeleted": false,
"status": null,
"createdDate": "2023-08-29",
"statusLastUpdatedDate": null,
"probabilityOfClosing": null,
"projectedClosingDate": null,
"totalFees": 0,
"otherFees": 0,
"expectedUtilizationRate": 0,
"originationExpenses": 0,
"overheadExpenses": 0,
"upfrontFee": 0,
"annualFee": 0,
"unusedCommitmentFee": 0,
"servicingExpenses": 0,
"floorRate": 0,
"indexRateDescription": null,
"indexRate": 0,
"spread": 0,
"ceilingRate": 0,
"proposedLoanStageId": null,
"proposedProductsId": null,
"evaluatedCreditScore": null,
"bankCodeBranch": "",
"denialOrWithdrawalReason": null,
"denialOrWithdrawalReasons": null,
"loanTypeForDenialOrWithdrawal": null,
"statusReason": "",
"firstPaymentDate": null,
"firstInterestPaymentDate": null,
"isSubjectToRegO": null,
"isTakedownLoan": null,
"isGuidanceLineOfCredit": null,
"noteDate": null,
"disbursementDate": null,
"discountPointsDollarAmount": null,
"includeNegativeAmortization": null,
"brokerCompensationPercent": null,
"lenderCredits": null,
"introductionRatePeriodInMonths": null,
"pointsAndFees": null,
"isPreapprovalRequested": null,
"isReverseMortgage": null,
"rateLockDate": null,
"includeOtherNonAmortizingFeatures": null,
"ecoaAdverseAction1": null,
"ecoaAdverseAction2": null,
"ecoaAdverseAction3": null,
"hmdaLoanType": null,
"hmdaLoanPurposeType": null,
"hmdaPurchaserType": null,
"hmdaFinalActionTakenType": null,
"craLoanType": null,
"craLoanPurposeType": null,
"hmdaAmortizationType": null,
"hmdaHoepaStatusType": null,
"craRevenueCodeType": null,
"interestOnlyTerm": 0,
"accountType": null,
"parentIsProposed": null,
"parentLoansId": null,
"lossGivenDefaultRiskRating": "0",
"probabilityOfDefaultRiskRating": 0,
"withheldAmount": null,
"institutionAvailableCredit": null,
"institutionWithheld": null,
"participatedAmount": null,
"userDefinedString1": null,
"userDefinedString2": null,
"userDefinedString3": null,
"userDefinedString4": null,
"userDefinedString5": null,
"userDefinedString6": null,
"userDefinedString7": null,
"userDefinedString8": null,
"userDefinedString9": null,
"userDefinedString10": null,
"userDefinedString11": null,
"userDefinedString12": null,
"userDefinedString13": null,
"userDefinedString14": null,
"userDefinedString15": null,
"userDefinedString16": null,
"userDefinedString17": null,
"userDefinedString18": null,
"userDefinedString19": null,
"userDefinedString20": null,
"userDefinedNumber1": null,
"userDefinedNumber2": null,
"userDefinedNumber3": null,
"userDefinedNumber4": null,
"userDefinedNumber5": null,
"userDefinedNumber6": null,
"userDefinedNumber7": null,
"userDefinedNumber8": null,
"userDefinedNumber9": null,
"userDefinedNumber10": null,
"userDefinedNumber11": null,
"userDefinedNumber12": null,
"userDefinedNumber13": null,
"userDefinedNumber14": null,
"userDefinedNumber15": null,
"userDefinedNumber16": null,
"userDefinedNumber17": null,
"userDefinedNumber18": null,
"userDefinedNumber19": null,
"userDefinedNumber20": null,
"userDefinedDate1": null,
"userDefinedDate2": null,
"userDefinedDate3": null,
"userDefinedDate4": null,
"userDefinedDate5": null,
"userDefinedDate6": null,
"userDefinedDate7": null,
"userDefinedDate8": null,
"userDefinedDate9": null,
"userDefinedDate10": null,
"userDefinedFields": null,
"comments": "",
"purpose": "",
"loanBoardingIdentifier": null
},
"customers": [
{
"customer": {
"id": 85477283,
"name": "New, User",
"dba": null,
"firstName": "User",
"middleInitial": "",
"lastName": "New",
"nameSuffix": "",
"userDefinedFields": null,
"creditScore": 0,
"secondaryCreditScore": 0,
"businessType": null,
"dnbScore": null,
"namePrefix": "",
"jobTitle": "Product Manager",
"addresses": [
{
"line1": "123 fake lane",
"line2": "",
"city": "Raleigh",
"state": "NC",
"postalCode": "27608",
"country": "US",
"addressType": "primary"
}
],
"phoneNumbers": [
{
"type": "primary",
"number": "(123) 456-7890"
}
],
"type": "person",
"emailAddress": "[email protected]",
"industryCode": null,
"isDeleted": false,
"uniqueIdentifier": "",
"taxId": "999-99-9999",
"branch": "",
"department": "",
"website": "",
"description": null,
"restricted": false,
"checkingBalance": 0,
"savingsBalance": 0,
"cDsBalance": 0,
"averageChecking": 0,
"averageSavings": 0,
"averageCDs": 0,
"citizenshipStatus": null,
"maritalStatus": null,
"isActiveMiltaryDuty": null,
"isDependentOfActiveMiltaryDuty": null,
"civDescription": null,
"employer": "",
"numberOfYearsEmployed": 0,
"ofacDesignation": "Negative",
"dateOfBirth": null,
"idDescription": null,
"idNumber": null,
"idIssueDate": null,
"idExpirationDate": null,
"idIssuingAuthority": null,
"comments": "",
"msa": null,
"stateCode": null,
"countyCode": null,
"tractCode": null,
"longitude": null,
"latitude": null,
"medianHouseholdIncome": null,
"metropolitanDivision": null,
"metropolitanDivisionCode": null,
"loanOfficer": null,
"loanOfficerId": null,
"loanAdministrator": null,
"equifaxCreditScore": null,
"equifaxCreditScoreDate": null,
"experianCreditScore": null,
"experianCreditScoreDate": null,
"transunionCreditScore": null,
"transunionCreditScoreDate": null,
"ficoSbssCreditScore": null,
"ficoSbssCreditScoreDate": null,
"bankruptcies": null,
"dateOfLastBankruptcy": null,
"historical30DayDelinquencies": null,
"historical60DayDelinquencies": null,
"historical90DayDelinquencies": null,
"historicalOtherDelinquencies": null,
"currentMortgagePastDue": null,
"currentInstallmentPastDue": null,
"currentAutoPastDue": null,
"currentEducationPastDue": null,
"currentOpenPastDue": null,
"currentRevolvingPastDue": null,
"currentOtherPastDue": null,
"currentTotalPastDue": null,
"entryMethod": "operatingCompany",
"professionalLLC": null,
"yearFounded": 0,
"businessRegistered": null,
"farmRegistered": null,
"stateOfFormation": null,
"franchiseName": null,
"franchiseLegalName": null,
"franchiseStartDate": null,
"sbaCode": null,
"cityHQ": null,
"stateHQ": null,
"franchiseDataImportDate": null,
"franchiseDataFinancialPeriod": null,
"historicalSuccessRate": null,
"systemSupportAndExpenseCommitment": null,
"resaleActivityLevel": null,
"mngmtExperienceStability": null,
"averageUnitRevenueGrowth": null,
"prospectScreening": null,
"unitEconomics": null,
"franchiseAgreementAssessment": null,
"franchiseeRelationship": null,
"projectedUnitSuccess": null,
"recurringRevenueSelfSufficiency": null,
"totalFundScore": null,
"finStatementStrength": null,
"franchisedUnits": null,
"minInitial": null,
"maxInitial": null,
"avgInitial": null,
"companyOwnedUnits": null,
"projectedOpenings": null,
"compoundAnnualUnitGrowthRate": null,
"compoundedUnitSuccessRate": null,
"experianDBT": null,
"equifaxDBT": null,
"dbdbt": null,
"dbPaydex": null,
"ansoniaCreditRating": null,
"ansoniaRiskScore": null,
"creditLogicScore": null,
"dbViabilityRating": null,
"lastReportRun": null,
"bankruptciesCount": null,
"collectionsCount": null,
"judgmentsCount": null,
"chargeOffsCount": null,
"liensCount": null,
"nsfChecksCount": null,
"dataDepthScore": null,
"underFormation": null,
"dateBusinessEstablished": null,
"loanBoardingIdentifier": "71923test"
},
"loanRole": {
"id": 6257891,
"customerId": 85477283,
"portfolioLoanId": null,
"proposedLoanId": 1884007,
"percentResponsible": 0,
"roleType": "Primary Borrower",
"isDeleted": false
}
}
],
"collaterals": [
{
"id": 45059222,
"description": "proposed loan file collateral",
"currentValue": 5000,
"mostRecentAppraisalValue": 5000,
"mostRecentAppraisalDate": "2023-08-15",
"collateralCode": "",
"collateralType": "Inventory",
"customerId": 85477283,
"originalValue": 0,
"discountRate": 0,
"isDeleted": false,
"propertyAddress": null,
"propertyCity": null,
"propertyState": null,
"propertyZip": null,
"propertyCounty": null,
"propertyTaxID": null,
"make": null,
"vin": null,
"model": null,
"year": null,
"bodyStyle": null,
"serialNumber": null,
"manufacturer": null,
"aircraftNumber": null,
"vesselName": null,
"vesselNumber": null,
"possessoryType": null,
"accountLOCNumber": null,
"issuedBy": null,
"issuer": null,
"shares": null,
"cusip": null,
"heldBy": null,
"beneficiary": null,
"letterOfCreditDate": null,
"govtContractNumber": null,
"govtContractDate": null,
"titledType": "titled",
"floodDeterminationDate": "2023-08-01",
"specialFloodHazardArea": 1,
"capitalizationRate": 0.01,
"isLOMC": null,
"collateralBreakout": null,
"cbraAndOPADesignationDate": null,
"dwelling": null,
"vesselLength": null,
"floodZone": null,
"floodZoneCode": null,
"floodProgramType": null,
"isLandImprovements": null,
"lomcCaseNumber": null,
"lomcDate": null,
"nfipMapNumber": null,
"nfipMapPanelDate": null,
"nfipCommunityName": null,
"nfipCommunityNumber": null,
"nfipPropertyDescription": null,
"constructionMethod": null,
"manufacturedHomeType": null,
"manufacturedHomeLandPropertyInterest": null,
"totalUnits": null,
"multiFamilyAffordableUnits": null,
"occupancyType": null,
"isForAgriculturalPurpose": null,
"isOwnerOccupied": null,
"isSecondHome": null,
"isProtectedArea": null,
"stateCode": null,
"countyCode": null,
"tractCode": null,
"latitude": null,
"longitude": null,
"metropolitanStatisticalArea": null,
"medianHouseholdIncome": null,
"metropolitanDivision": null,
"metropolitanDivisionCode": null,
"userDefinedFields": null,
"dateAppraisalRequested": null,
"isReadyForAppraisal": null,
"collateralMetadataType": "proposed",
"collateralIdentifier": "",
"legalDescription": null
}
]
}If additional detail, such as custom user defined fields, are required to include for boarding, the following endpoints can be used:
GET /v1/proposed-loans/{id}may be leveraged to retrieve custom user defined fields on the proposed loan.userDefinedFieldsparameter must be set to true.- Use
proposedLoanIdfrom previous payload.
- Use
GET /v1/customers/{id}may be leveraged to retrieve custom user defined fields on the customer.userDefinedFieldsparameter must be set to true.- Use
customerIDfrom previous payload.
- Use
GET /v1/collaterals/{id}may be leveraged to retrieve custom user defined fields on the associated collateral. Please note that the proposed loan must be a lien on the collateral to return in the payload for boarding.- Use
collateralIdfrom previous payload.
- Use
Board loan and relevant information to core
At this point all the necessary information regarding that loan, customer, and collateral can be used to board to core.
Update Loan Boarding Identifier on the proposed loan
At this point the institution may update the proposed loan with the the core system unique identifier. That field can be housed in the loanBoardingIdentifier field.
Please note that the loanBoardingIdentifier field will be set from the Core System Loan Number field on the Loan Boarding page in Sageworks.
PATCH /v1/proposed-loans/{id}- Limit payload toloanBoardingIdentifier.
Associate proposed loan with the portfolio loan
After the loan integrates into Sageworks from core, POST /v1/proposed-loans/associate may be leveraged to connect the proposed loan with the portfolio loan. Ther following ID's will need to be retrieved:
proposedLoanId- Stored from previous payload(s). Sageworks database ID of the proposed loan.customerId- Stored from previous payload(s). Sageworks database ID of the customer entity.portfolioLoanId- The Sageworks database ID of the integrated existing loan. Can be retrieved by callingGET /v1/portfolio-loans, filtered bycustomerId.
{
"proposedLoanId": 0,
"portfolioLoanId": 0,
"copyLoanInformation": true,
"moveDocuments": true,
"moveNarratives": true,
"copyPolicyExceptions": true,
"copyCollateral": true,
"collateralMappings": [
{
"proposedCollateralId": 0,
"existingCollateralId": 0
}
]
}End users can also associate decisioned proposed loans to core integrated loans in the UI, as part of a Workflow.
Close the loan boarding event
Once all actions are complete regarding boarding the loan and all updates are successful, the loan boarding event may now be closed
PATCH /v1/events{id}/complete can be used to complete loan boarding events by id. This will make sure that the event does not appear in further queries for loan boarding events.
Updated about 7 hours ago
