Skip to content

Data Models

INFO

See ApplicationModel for details on how to submit an application (Used for the quote parameter on the Submit Application endpoint).

AddressHistoryModel

javascript
{
  "timeAtAddress": "LessThan6Months",
  "county": "Co. Carlow",
  "country": "Ireland",
  "line1": "11 Páirc Mhuire",
  "line2": "Tullow",
  "postCode": "(string)",
  "eirCode": "(string)",
  "currentAddress": "true",
}
Field NameTypeDescription
timeAtAddress (required)enum(Duration)One of ["less6", "6to12", "1year", "2years", "3years", "4years", "5years", "6years", "7years", "8years", "9years", "morethan10"]. Time at the Address. less6 = Less Than 6 Months, 6to12 = 6 To 12 Months, 1year = 1 Year, 2years = 2 Years, 3years = 3 Years, 4years = 4 Years, 5years = 5 Years, 6years = 6 Years, 7years = 7 Years, 8years = 8 Years, 9years = 9 Years, morethan10 = 10 Years Or More
countystringCounty must be provided in the address
countrystringCountry must be provided in the address
line1stringAddress Line 1
line2stringAddress Line 2
postCodestringAddress Postcode
eirCodestringAddress Eircode
currentAddressbooleanOne of the provided addresses requires to be the current address (true), all others are false.

ApplicantModel

javascript
{
  "title": "mr",
  "firstName": "John",
  "lastName": "DooI",
  "dateOfBirth": "1991-12-18",
  "gender": "male",
  "maritalStatus": "single",
  "nationality": "IRL",
  "primaryApplicant": true,
  "ppsNumber": "5759043U",
  "email": "a@co.com",
  "mainPhone": "0862504814",
  "secondaryPhone": "0862504815",
  "residentialStatus": "homeOwner",
  "numberOfDependents": 0,
  "addresses": { ... },
  "employment": { ... },
  "incomeExpenditure": { ... },
}
Field NameTypeDescription
title (required)enum(Title)One of ["mr", "mrs", "ms", "miss", "genderNeutral", "doctor"]. Title of the Applicant.
firstName (required)stringFirst name of the Applicant. Must be a valid person's name
lastName (required)stringLast name of the Applicant. Must be a valid person's name
dateOfBirth (required)string(date-time)Date of birth of the Applicant. All applicants must be over 21 years old and under 70 years old
gender (required)enum(gender)One of ["male", "female"]. Gender of the Applicant.
maritalStatus (required)enum(MaritalStatus)One of ["single", "married", "widowed", "separated", "divorced", "cohabitating"]. Marital status of the Applicant
nationality (required)stringNationality of the Applicant
primaryApplicant (required)booleanDeteremines if the applicant is the case primary applicant.
ppsNumber (required)stringPPS Number of the Applicant. Must be a valid PPS Number. PPSN has (usually) 9 characters, with the 8th one being the "verification digit"
email (required)stringApplicant's email address. Must be a valid email address
mainPhone (required)stringApplicant's main phone number. Must be a valid Ireland mobile phone number
secondaryPhonestringApplicant's other phone number. Must be a valid Ireland phone number
residentialStatus (required)enum(ResidentialStatus)One of ["homeOwner", "tenant", "livingWithParents"]. Residential status of the Applicant
numberOfDependentsinteger(int32)Number of dependents status of the Applicant. Must be a non-negative integer
maidenOtherstringRequired if the Title is Mrs, Ms or Miss. Must be a valid person's name. Maiden name of the Applicant. If no name change, fill it with the same of Last Name
middleNamestringMiddle name of the Applicant. Must be a valid person's name. Enter your Last Name here if your name has not changed
addresses (required)AddressHistoryModel[]Applicant's address history. Must be at least 3 years of address history
employment (required)EmploymentModelEmployment information of the Applicant
incomeExpenditureIncomeExpenditureModelRequired if the BorrowerType is Individual, Joint or Sole Trader. Income and expenditure details of the Applicant. The sum of all applicants income must be at least €1,250 per month

ApplicationModel

javascript
{
  "onBehalfOf":"dealer2@example.com",
  "caseId": null,
  "borrower": { ... },
  "loanDetails": { ... }
}
Field NameTypeDescription
onBehalfOf (required)stringEmail of the Close Connect user who will become the owner of the application. If the current API user should be the owner, this should be left empty. If creating for a user who has not given an API consent, this will fail with error 401.
caseId (required)stringA case identifier. For creating a new case, send null. If the first submission failed to submit, you can use the caseId generated to re try the submission with new data"
borrower (required)BorrowerDetailsModelBorrower details
applicants (required)ApplicantModel[]The Applicants of the application. The length depends on the BorrowerType. Individual and SoleTrader = 1, Joint = 2, Partnership = 2 or 3, LimitedCompany = 1 to 3
loanDetails (required)LoanDetailsModelLoan details for the application

BankDetailsModel

javascript
{
  "accountName": "(string)",
  "accountType": "IndividualAccount",
  "bank": "AlliedIrishBanks",
  "yearsWithBank": 2,
  "accountNumber": "12345678",
  "address": "(string)",
  "bicCode": "BOFIGB2B",
  "branch": "(string)",
  "iban": "IE29 AIBK 9311 5212 3456 78",
  "sortCode": "92-22-33",
}
Field NameTypeDescription
accountName (required)stringThe name of the bank account
accountType (required)enum(AccountType)One of ["individualAccount", "jointAccount"]. The bank account type.
bank (required)enum(Bank)One of ["alliedIrishBanks", "anPost", "bankOfIreland", "creditUnion", "ebs", "n26", "permanentTSB", "revolut"]. The bank that holds the account
yearsWithBank (required)integer(int32)How many years the applicant uses this bank. Must be a positive whole number
accountNumberstringThe Bank account's number. Must be not less than 8 characters
addressstringThe address of the Bank's branch that holds the account
bicCodestringThe Bank account's Bank Identifier Code
branchstringThe identification of the Bank's branch that holds the account
ibanstringThe Bank account's International Bank Account Number
sortCodestringThe Bank account's sort code. Must be a valid sort code. These codes have six digits, and they are divided into three different pairs, such as 12-34-56

BorrowerDetailsModel

javascript
{
  "borrowerType": "individual",
  "bankDetails": { ... },
  "applicants": [ { ... }, { ... } ],
  "legalName": "(string)",
  "tradingAs": "(string)",
  "businessAddress": { ... },
  "businessContact": { ... },
  "typeOfBusiness": "(string)",
  "numberOfEmployees": 0,
  "averageTurnover": 0,
  "yearIncorporated": "(string)",  
  "companyRegNumber": "(string)",  
  "numberOfDirectors": 0,  
  "timeInBusiness": "(string)",
}
Field NameTypeDescription
borrowerType (required)enum(BorrowerType)One of ["individual", "joint", "partnership", "limitedCompany", "soleTrader"]. The type of the application. individual => An application for one applicant, joint => An application with an applicant and a guarantor, partnership => An application with 2 or 3 applicants that has a partnership company, limitedCompany => An application for a limited company, it has to be the directors as applicants. soleTrader => An application for a sole trader,
bankDetails (required)BankDetailsModelBank details
applicants (required)ApplicantModel[]The Applicants of the application. The length depends on the BorrowerType. Individual and SoleTrader = 1, Joint = 2, Partnership = 2 or 3, LimitedCompany = 1 to 3
legalNamestringRequired if the BorrowerType is Partnership and Limited Company. The Legal Name for Partnership/Limited Company
tradingAsstringRequired if the BorrowerType is Sole Trader. The "Trading As" name of the Business
businessAddress (required)AddressHistoryModelRequired if the BorrowerType is Partnership, LimitedCompany or SoleTrader. The address of the business
businessContact (required)ContactDetailsModelRequired if the BorrowerType is Partnership, LimitedCompany or SoleTrader. The business contact details
typeOfBusinessstringRequired if the BorrowerType is Partnership, LimitedCompany or SoleTrader. The type of the Business
numberOfEmployeesinteger(int32)The Number of employees in the Business. Must be a non-negative integer
averageTurnovernumber(double)Required if the BorrowerType is Partnership or LimitedCompany. The average turnover per month of the Business. Must be whole euros
yearIncorporatedstringRequired if the BorrowerType is LimitedCompany. The year that the Business was incorporated. Must be an integer >= 1900
companyRegNumberstringRequired if the BorrowerType is LimitedCompany. The company's registration number.
numberOfDirectorsinteger(int32)Required if the BorrowerType is LimitedCompany. The number of directors in the Business. Must be a non-negative integer
timeInBusinessenum(Duration)One of ["less6", "6to12", "1year", "2years", "3years", "4years", "5years", "6years", "7years", "8years", "9years", "morethan10"]. Required if the BorrowerType is SoleTrader. The time that the business has been active.

ContactDetailsModel

javascript
{
  "email": "a@co.com",
  "mainPhone": "0838333333",
  "secondaryPhone": "0838333333",
}
Field NameTypeDescription
email (required)stringApplicant's email address. Must be a valid email address
mainPhone (required)stringApplicant's main phone number. Must be a valid Ireland mobile phone number
secondaryPhonestringApplicant's other phone number. Must be a valid Ireland phone number

EmploymentModel

javascript
{
  "industry": "Computer Software/Engineering",
  "title": "Software Engineer",
  "employmentType": "FullTime",
  "status": "Permanent",
  "employerName": "John Doe",
  "county": "Co. Carlow",
  "country": "Ireland",
  "line1": "11 Páirc Mhuire",
  "line2": "Tullow",
  "postCode": "(string)",
  "eirCode": "(string)",
  "email": "a@co.com",
  "mainPhone": "0838333333",
  "secondaryPhone": "0838333333",
  "timeInEmployment": "LessThan6Months",
  "workPermit": "(string)",
  "workPermitExpiry": "(date)",
}
Field NameTypeDescription
industry (required)stringApplicant's employment industry category
title (required)stringApplicant's employment occupation title. Must be at least two characters
employmentType (required)enum(EmploymentType)One of ["fullTime", "partTime", "selfEmployed"]. Applicant's employment type.
status (required)enum(EmploymentStatus)One of ["Permanent", "Temporary", "contract", "selfemployed"]. Required if EmploymentType is FullTime or PartTime. Applicant's employment type.
employerName (required)stringRequired if EmploymentType is FullTime or PartTime. Applicant's employer name
county (required)stringCounty must be provided in the address
country (required)stringCountry must be provided in the address
line1 (required)stringAddress Line 1
line2 (required)stringAddress Line 2
postCode (required)stringAddress Postcode
eirCode (required)stringAddress Eircode
email (required)stringEmployer's email address. Must be a valid email address
mainPhone (required)stringEmployer's main phone number. Must be a valid Ireland mobile phone number
secondaryPhonestringEmployer's other phone number. Must be a valid Ireland phone number
timeInEmployment (required)enum(Duration)One of ["less6", "6to12", "1year", "2years", "3years", "4years", "5years", "6years", "7years", "8years", "9years", "morethan10"]. Applicant's time in this employment. less6 = Less Than 6 Months, 6to12 = 6 To 12 Months, 1year = 1 Year, 2years = 2 Years, 3years = 3 Years, 4years = 4 Years, 5years = 5 Years, 6years = 6 Years, 7years = 7 Years, 8years = 8 Years, 9years = 9 Years, morethan10 = 10 Years Or More.
workPermitstringApplicant's work permit number
workPermitExpirydate-timeApplicant's work permit expiry date

IncomeExpenditureModel

javascript
{
  "netSalaryPerMonth": 2500,
  "otherIncomePerMonth": 0,
  "mortgageRent": 1000
}
Field NameTypeDescription
netSalaryPerMonth (required)number(double)Applicant's net salary per month. Must be a non-negative integer. Must be whole euros. Must be More or equal than 1
otherIncomePerMonthnumber(double)Applicant's other income per month. Must be a non-negative integer. Must be whole euros
mortgageRent (required)number(double)Applicant's mortgage or rent payment. Must be a non-negative integer. Must be whole euros

LoanDetailsModel

javascript
{
  "vehicle": { ... },
  "term": "(integer)",
  "furtherInformation": "(string)",
  "loanType": "(enum(loanType))",
}
Field NameTypeDescription
vehicle (required)VehicleDetailsModelThe vehicle details
term (required)integer(int32)The number of months of the loan. Must be an integer. The term needs to be allowed by a valid product
furtherInformationstringFurther information required for the case
loanType (required)enum(loanType)One of ["hp", "pcp"]. The Loan Type of the Application. 'hp' = Hire Purchase; 'pcp' = Purchase Contract Plan

NodeJsFieldValidation

javascript
{
  "message": "(string)",
  "model": "(string)",
  "type": "(string)",
}
Field NameTypeDescription
messagestring(no description)
modelstring(no description)
typestring(no description)

StatusResponseModel

javascript
{
  "date": "(string)",
  "customData": { ... },
  "CaseId": "(string)",
  "status": "Success",
}
Field NameTypeDescription
date (required)string(date-time)The date and time of the status change
customDataobjectA dictionary of custom data that can be added to the quote. This data will be returned in the webhooks
CaseIdstringThe quote reference
statusstringThe current status of the quote

SubmitApplicationResponseModel

javascript
{
  "ValidationErrors": [ { ... }, { ... } ],
  "CaseId": "(string)",
  "IsSubmitted": true,
}
Field NameTypeDescription
ValidationErrorsNodeJsFieldValidation[]This is the list of invalid fields and its reasons
CaseIdstringThe Case id used to find the quote in Close Connect and retry the submission
IsSubmittedboolean(no description)

VehicleDetailsModel

javascript
{
  "vehicleType": "(string)",
  "registrationNumber": "242C4558",
  "odometer": 8000,
  "purchasePrice": 15000,
  "deposit": 2500,
  "tradeIn": 2500,
  "tradeInRegistrationNumber": "212C4558",
  "annualKilometers": "20000",
}
Field NameTypeDescription
vehicleType (required)enum(VehicleType)One of ["car", "tbc", "lightCommercial", "other"]'car' = Car; 'tbc' = To be confirmed; 'lightCommercial' = Light Commercial; 'other' = Other
registrationNumber (required)stringMust be valid registration number. Fields for used vehicles
odometer (required)integer(int32)The odometer of the selected vehicle. Fields for used vehicles
purchasePrice (required)integer(int32)The purchase price of the vehicle. Must be a non-negative integer. Must be less or equal to €100,000
deposit (required)integer(int32)The deposit for the vehicle purchase.
tradeIninteger(int32)The trade-in value.
tradeInRegistrationNumberstringThe trade in vehicle's registration number. Must be valid registration number
annualKilometersenum(AnnualKilometers)One of ["15000", "20000", "25000"] The maximum annual kilometers accepted for the contract. Required for PCP.
                                                                                                                                                                    |

Close Connect Documentation