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

FieldValidation ​

javascript
{
  "Model": "(string)",
  "Type": "(string)",
  "Message": "(string)",
}
Field NameTypeDescription
ModelstringThe field that failed validation, empty if the error is not tied to one field
TypestringThe name of the validation rule that failed
MessagestringThe description of the failure

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

StartEsignResponseModel ​

javascript
{
  "caseId": "(string)",
  "status": "(enum(ESignStatus))",
}
Field NameTypeDescription
caseIdstringThe case id the request was made against
statusenum(ESignStatus)One of ["Initiated", "In progress", "Completed", "Not ready", "Not permitted"]. How far the signing process has got. 'Initiated' = Signing has just been started; 'In progress' = Signing was already under way; 'Completed' = The documents are fully signed; 'Not ready' = There is nothing to sign yet, or the application is closed; 'Not permitted' = The application is not accessible to this API client. See Response Statuses

StatusResponseModel ​

javascript
{
  "status": "Underwriting",
  "quoteReference": "(string)",
  "date": "(string)",
  "loanAmount": 15000,
  "monthlyPayment": 312,
  "rate": 14.75,
  "aprc": 16.2,
  "requirements": [ "(string)", "(string)" ],
}
Field NameTypeDescription
statusstringThe current status of the quote. See Status Values
quoteReferencestringThe quote reference, which is the case id the request was made against
datestring(date-time)The date and time of the last status change
loanAmountnumberThe amount financed
monthlyPaymentnumberThe monthly payment
ratenumberThe rate of the selected product
aprcnumberThe APRC
requirementsstring[]The outstanding document requirements, by name, for example "Proof of Address" or "Payslips". Close Connect may also raise a requirement with wording of its own, so treat this list as open ended

SubmitApplicationResponseModel ​

javascript
{
  "caseId": "(string)",
  "isSubmitted": true,
  "validationErrors": [ { ... }, { ... } ],
}
Field NameTypeDescription
caseIdstringThe Case id used to find the quote in Close Connect and retry the submission
isSubmittedbooleanWhether the application was submitted for review. false means it was created but held in the Open status
validationErrorsFieldValidation[]This is the list of invalid fields and its reasons

VehicleDetailsModel ​

javascript
{
  "vehicleType": "(string)",
  "registrationNumber": "242C4558",
  "vin": "(string)",
  "isJapaneseImport": false,
  "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
vinstringThe Vehicle Identification Number (VIN) of the vehicle
isJapaneseImportbooleanIndicates that the vehicle is a Japanese import. When true, the vehicle's condition is recorded as japaneseImport; when false or omitted, it defaults to used
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