Trendsic Platform Service

<back to all web services

FactFinderRequest

Requires Authentication
Requires any of the roles:Agent, Administrator, Agent, Administrator
The following routes are available for this service:
POST,PUT,OPTIONS/v1/FactFinder
import Foundation
import ServiceStack

public class FactFinderRequest : Codable
{
    public var factFinderSheet:FactFinderSheetExtended
    public var dataEntry:Bool

    required public init(){}
}

public class FactFinderSheetExtended : Codable
{
    public var contact:Contact
    public var factFinderSheet:FactFinderSheet
    public var spouse:ContactSpouse
    public var children:[ContactChild] = []
    public var incomeSources:[ContactRetirementIncome] = []
    public var additionalNotes:String
    public var expenses:[ContactExpense] = []
    public var referrals:[ContactClientReferral] = []
    public var ltaInfo:[ContactLTAInfo] = []
    public var pensions:[ContactPension] = []

    required public init(){}
}

public class Contact : Codable
{
    public var contactId:Int
    public var contactType:Int
    public var firstName:String
    public var lastName:String
    public var name:String
    public var role:String
    public var title:String
    public var emailWork:String
    public var emailPersonal:String
    public var district:String
    public var districtID:Int
    public var school:String
    public var schoolID:Int
    public var state:String
    public var stateName:String
    public var stateID:Int
    public var countyID:Int
    public var county:String
    public var phone:String
    public var department:String
    public var flow:String
    public var lastContact:Date
    public var doNotContact:Bool
    public var active:Bool
    public var agentId:Int
    public var phoneAlt:String
    public var peraContactId:Int
    public var roomNumber:String
    public var sourceTypeId:Int
    public var sourceTypeDesc:String
    public var sourceNote:String
    public var contactStatusId:Int
    public var contactStatusDesc:String
    public var ssn:String
    public var dateOfBirth:Date
    public var deleted:Bool
    public var isShared:Bool
    public var address_line1:String
    public var address_city:String
    public var address_state:String
    public var address_zip:String
    public var deletedBy:String
    public var deletedDateTimeUtc:Date?
    public var hasNBC:Bool
    public var hasFactFinderSheet:Bool
    public var middleInitial:String
    public var tags:String
    public var dateCreated:Date
    public var phoneLabel:String
    public var altPhoneLabel:String
    public var carriers:String
    public var contactImage:String
    public var companyAffiliation:String
    public var additionalInformation:String
    public var hasGiftCard:Bool
    public var contactCategory:Int
    public var writingAgentId:Int
    public var writingAgentName:String
    public var maritalStatus:String
    public var totalDebtAmount:Double
    public var numberOfDebtAccounts:Int
    public var factFinderCodeId:Int
    public var businessName:String
    public var dba:String
    public var contactGUID:String
    public var projectEndDate:Date
    public var rate:Int
    public var jobID:Int
    public var jobName:String
    public var jobCount:Int
    public var locked:Bool
    public var lockedByAgentId:Int
    public var lockedTimestamp:Date
    public var initials:String
    public var contactCategoryName:String
    public var smsOptIn:Bool

    required public init(){}
}

public class FactFinderSheet : Codable
{
    public var factFinderSheetId:Int
    public var contactId:Int
    public var employmentYears:String
    public var pastOccupations:String
    public var clientGrossMthlyIncome:Double?
    public var clientNetMthlyIncome:Double?
    public var householdGrossMthlyIncome:Double?
    public var householdNetMthlyIncome:Double?
    public var estimatedExpenses:Double?
    public var discretionaryIncome:Double?
    public var desiredRetirementIncome:Double?
    public var retirementGoals:String
    public var emergencyFundMthlyContrib:Double?
    public var emergencyFundBalance:Double?
    public var emergencyFundComplete:Bool?
    public var workStatus:String
    public var unusedSickDays:Double?
    public var unusedSickHours:Double?
    public var contractBaseServPerYrDays:Double?
    public var contractBaseServPerYrHours:Double?
    public var daysPerWeek:Double?
    public var hoursPerWeek:Double?
    public var monthsPerYear:Double?
    public var numPreTaxChecksPerYr:Int?
    public var yearsWithOtherDistricts:Double?
    public var primaryLifeInsurance:Bool?
    public var pliCarrier:String
    public var pliFaceAmount:Double?
    public var pliIssueDate:Date?
    public var pliPremium:Double?
    public var pliType:String
    public var pliTypeOf:String
    public var pliCashValue:Double?
    public var spouseLifeInsurance:Bool?
    public var sliCarrier:String
    public var sliFaceAmount:Double?
    public var sliIssueDate:Date?
    public var sliPremium:Double?
    public var sliType:String
    public var sliTypeOf:String
    public var sliCashValue:Double?
    public var primaryLTCInsurance:Bool?
    public var pltcPremium:Double?
    public var primaryDisabilityInsurance:Bool?
    public var pdiPremium:Double?
    public var spouseLTCInsurance:Bool?
    public var sltcPremium:Double?
    public var spouseDisabilityInsurance:Bool?
    public var sdiPremium:Double?
    public var hasRetirementSavings:Bool?
    public var hasPriorEmploymentRetirementSavings:Bool?
    public var hasDistributionPlan:Bool?

    required public init(){}
}

public class ContactSpouse : Codable
{
    public var contactSpouseId:Int
    public var contactId:Int
    public var name:String
    public var dob:Date?
    public var cell:String
    public var employer:String
    public var years:Double?
    public var position:String
    public var email:String
    public var pastOccupations:String

    required public init(){}
}

public class ContactChild : Codable
{
    public var contactChildId:Int
    public var contactId:Int
    public var name:String
    public var dob:Date?
    public var fund:String
    public var contribution:Double?
    public var balance:Double?

    required public init(){}
}

public class ContactRetirementIncome : Codable
{
    public var contactRetirementIncomeId:Int
    public var contactId:Int
    public var accountOwner:String
    public var accountType:String
    public var carrier:String
    public var totalValue:Double?
    public var surrValue:Double?
    public var dateOfIssue:Date?
    public var fees:Double?
    public var policyNum:String
    public var contrib:Double?
    public var empNotes:String
    public var taxCode:String
    public var surrCharge:Double?
    public var thirdPrtyPprwrkOK:Bool?
    public var addlFormsReqd:Bool?
    public var originalFormsReqd:Bool?
    public var signatureGuarReqd:Bool?
    public var faxAccepted:Bool?
    public var faxNumber:String
    public var mailingAddr:String
    public var mailingCity:String
    public var mailingState:String
    public var mailingZip:String
    public var hasOutstandingLoans:Bool?

    required public init(){}
}

public class ContactExpense : Codable
{
    public var contactExpenseId:Int
    public var contactId:Int
    public var expenseType:String
    public var Description:String
    public var balance:Double?
    public var interestRate:Double?
    public var minimumPayment:Double?
    public var monthlyPayment:Double?

    required public init(){}
}

public class ContactClientReferral : Codable
{
    public var contactClientReferralId:Int
    public var contactId:Int
    public var name:String
    public var campus:String
    public var room:String
    public var phone:String

    required public init(){}
}

public class ContactLTAInfo : Codable
{
    public var contactLTAInfoId:Int
    public var contactId:Int
    public var planType:String
    public var company:String
    public var contribution:Double?
    public var balance:Double?

    required public init(){}
}

public class ContactPension : Codable
{
    public var contactPensionId:Int
    public var contactId:Int
    public var pensionSystem:String
    public var pensionStartDate:Date?
    public var serviceCredit:Double?
    public var serviceCreditAsOfDate:Date?
    public var desiredRetirementDate:Date?
    public var desiredRetirementAge:Int
    public var spousalBenefitDesired:Bool?
    public var formulaPercent:Double?
    public var formulaAt:Double?
    public var definedBenefitBalance:Double?
    public var definedBenefitSpouseBalance:Double?

    required public init(){}
}


Swift FactFinderRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/FactFinder HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	FactFinderSheet: 
	{
		Contact: 
		{
			ContactId: 0,
			ContactType: 0,
			FirstName: String,
			LastName: String,
			Name: String,
			Role: String,
			Title: String,
			EmailWork: String,
			EmailPersonal: String,
			District: String,
			DistrictID: 0,
			School: String,
			SchoolID: 0,
			State: String,
			StateName: String,
			StateID: 0,
			CountyID: 0,
			County: String,
			Phone: String,
			Department: String,
			Flow: String,
			LastContact: 0001-01-01,
			DoNotContact: False,
			Active: False,
			AgentId: 0,
			PhoneAlt: String,
			PeraContactId: 0,
			RoomNumber: String,
			SourceTypeId: 0,
			SourceTypeDesc: String,
			SourceNote: String,
			ContactStatusId: 0,
			ContactStatusDesc: String,
			SSN: String,
			DateOfBirth: 0001-01-01,
			Deleted: False,
			IsShared: False,
			address_line1: String,
			address_city: String,
			address_state: String,
			address_zip: String,
			DeletedBy: String,
			DeletedDateTimeUtc: 0001-01-01,
			HasNBC: False,
			HasFactFinderSheet: False,
			MiddleInitial: String,
			Tags: String,
			DateCreated: 0001-01-01,
			PhoneLabel: String,
			AltPhoneLabel: String,
			Carriers: String,
			ContactImage: String,
			CompanyAffiliation: String,
			AdditionalInformation: String,
			HasGiftCard: False,
			ContactCategory: 0,
			WritingAgentId: 0,
			WritingAgentName: String,
			MaritalStatus: String,
			TotalDebtAmount: 0,
			NumberOfDebtAccounts: 0,
			FactFinderCodeId: 0,
			BusinessName: String,
			DBA: String,
			ContactGUID: 00000000000000000000000000000000,
			ProjectEndDate: 0001-01-01,
			Rate: 0,
			JobID: 0,
			JobName: String,
			JobCount: 0,
			Locked: False,
			LockedByAgentId: 0,
			LockedTimestamp: 0001-01-01,
			Initials: String,
			ContactCategoryName: String,
			SMSOptIn: False
		},
		FactFinderSheet: 
		{
			FactFinderSheetId: 0,
			ContactId: 0,
			EmploymentYears: String,
			PastOccupations: String,
			ClientGrossMthlyIncome: 0,
			ClientNetMthlyIncome: 0,
			HouseholdGrossMthlyIncome: 0,
			HouseholdNetMthlyIncome: 0,
			EstimatedExpenses: 0,
			DiscretionaryIncome: 0,
			DesiredRetirementIncome: 0,
			RetirementGoals: String,
			EmergencyFundMthlyContrib: 0,
			EmergencyFundBalance: 0,
			EmergencyFundComplete: False,
			WorkStatus: String,
			UnusedSickDays: 0,
			UnusedSickHours: 0,
			ContractBaseServPerYrDays: 0,
			ContractBaseServPerYrHours: 0,
			DaysPerWeek: 0,
			HoursPerWeek: 0,
			MonthsPerYear: 0,
			NumPreTaxChecksPerYr: 0,
			YearsWithOtherDistricts: 0,
			PrimaryLifeInsurance: False,
			PLICarrier: String,
			PLIFaceAmount: 0,
			PLIIssueDate: 0001-01-01,
			PLIPremium: 0,
			PLIType: String,
			PLITypeOf: String,
			PLICashValue: 0,
			SpouseLifeInsurance: False,
			SLICarrier: String,
			SLIFaceAmount: 0,
			SLIIssueDate: 0001-01-01,
			SLIPremium: 0,
			SLIType: String,
			SLITypeOf: String,
			SLICashValue: 0,
			PrimaryLTCInsurance: False,
			PLTCPremium: 0,
			PrimaryDisabilityInsurance: False,
			PDIPremium: 0,
			SpouseLTCInsurance: False,
			SLTCPremium: 0,
			SpouseDisabilityInsurance: False,
			SDIPremium: 0,
			HasRetirementSavings: False,
			HasPriorEmploymentRetirementSavings: False,
			HasDistributionPlan: False
		},
		Spouse: 
		{
			ContactSpouseId: 0,
			ContactId: 0,
			Name: String,
			DOB: 0001-01-01,
			Cell: String,
			Employer: String,
			Years: 0,
			Position: String,
			Email: String,
			PastOccupations: String
		},
		Children: 
		[
			{
				ContactChildId: 0,
				ContactId: 0,
				Name: String,
				DOB: 0001-01-01,
				Fund: String,
				Contribution: 0,
				Balance: 0
			}
		],
		IncomeSources: 
		[
			{
				ContactRetirementIncomeId: 0,
				ContactId: 0,
				AccountOwner: String,
				AccountType: String,
				Carrier: String,
				TotalValue: 0,
				SurrValue: 0,
				DateOfIssue: 0001-01-01,
				Fees: 0,
				PolicyNum: String,
				Contrib: 0,
				EmpNotes: String,
				TaxCode: String,
				SurrCharge: 0,
				ThirdPrtyPprwrkOK: False,
				AddlFormsReqd: False,
				OriginalFormsReqd: False,
				SignatureGuarReqd: False,
				FaxAccepted: False,
				FaxNumber: String,
				MailingAddr: String,
				MailingCity: String,
				MailingState: String,
				MailingZip: String,
				HasOutstandingLoans: False
			}
		],
		AdditionalNotes: String,
		Expenses: 
		[
			{
				ContactExpenseId: 0,
				ContactId: 0,
				ExpenseType: String,
				Description: String,
				Balance: 0,
				InterestRate: 0,
				MinimumPayment: 0,
				MonthlyPayment: 0
			}
		],
		Referrals: 
		[
			{
				ContactClientReferralId: 0,
				ContactId: 0,
				Name: String,
				Campus: String,
				Room: String,
				Phone: String
			}
		],
		LTAInfo: 
		[
			{
				ContactLTAInfoId: 0,
				ContactId: 0,
				PlanType: String,
				Company: String,
				Contribution: 0,
				Balance: 0
			}
		],
		Pensions: 
		[
			{
				ContactPensionId: 0,
				ContactId: 0,
				PensionSystem: String,
				PensionStartDate: 0001-01-01,
				ServiceCredit: 0,
				ServiceCreditAsOfDate: 0001-01-01,
				DesiredRetirementDate: 0001-01-01,
				DesiredRetirementAge: 0,
				SpousalBenefitDesired: False,
				FormulaPercent: 0,
				FormulaAt: 0,
				DefinedBenefitBalance: 0,
				DefinedBenefitSpouseBalance: 0
			}
		]
	},
	DataEntry: False
}