Appearance
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
{
"ccrCounty": "GALWAY",
"timeAtAddress": "LessThan6Months",
"county": "Co. Carlow",
"line1": "11 Páirc Mhuire",
"line2": "Tullow",
"postCode": "(string)",
"town": "Carlow",
}| Field Name | Type | Description |
|---|---|---|
| ccrCounty (required) | enum(CcrCounty) | One of ["GALWAY", "LEITRIM", "MAYO", "ROSCOMMON", "SLIGO", "CARLOW", "MONAGHAN", "KILDARE", "KILKENNY", "LAOIS", "LONGFORD", "LOUTH", "MEATH", "OFFALY", "WESTMEATH", "WEXFORD", "WICKLOW", "CLARE", "CORK", "KERRY", "LIMERICK", "TIPPERARY", "WATERFORD", "CAVAN", "DONEGAL", "DUBLIN"]. County must be provided in the address. |
| timeAtAddress (required) | enum(Duration) | One of ["LessThan6Months", "From6To12Months", "About1Year", "About2Years", "About3Years", "About4Years", "About5Years", "About6Years", "About7Years", "About8Years", "About9Years", "About10YearsOrMore"] . |
| county | string | County must be provided in the address |
| line1 | string | Address Line 1 |
| line2 | string | Address Line 2 |
| postCode | string | Address Postcode |
| town | string | Address Town |
AddressModel
javascript
{
"county": "Co. Carlow",
"line1": "11 Páirc Mhuire",
"line2": "Tullow",
"postCode": "R13 TN29",
"town": "Carlow",
}| Field Name | Type | Description |
|---|---|---|
| county | string | County must be provided in the address |
| line1 | string | Address Line 1 |
| line2 | string | Address Line 2 |
| postCode | string | Address Postcode |
| town | string | Address Town |
ApplicantModel
javascript
{
"contactDetails": { ... },
"personalInfo": { ... },
"employment": { ... },
"incomeExpenditure": { ... },
}| Field Name | Type | Description |
|---|---|---|
| contactDetails (required) | ContactDetailsModel | Contact details of the Applicant |
| personalInfo (required) | PersonalInfoModel | Personal information of the Applicant |
| employment | EmploymentModel | Required if the BorrowerType is Individual or Joint. Employment information of the Applicant |
| incomeExpenditure | IncomeExpenditureModel | Required if the BorrowerType is Individual or Joint. Income and expenditure details of the Applicant. The sum of all applicants income must be at least €1,250 per month |
ApplicationModel
javascript
{
"applicants": [ { ... }, { ... } ],
"bankDetails": { ... },
"borrowerType": "Individual",
"finance": { ... },
"financeApplyingFor": "Car",
"businessData": { ... },
"company": { ... },
"furtherInformation": "(string)",
"newVehicle": { ... },
"partnership": { ... },
"quoteReference": "(string)",
"soleTrader": { ... },
"usedVehicle": { ... },
}| Field Name | Type | Description |
|---|---|---|
| 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 |
| bankDetails (required) | BankDetailsModel | Bank details |
| 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, |
| finance (required) | FinanceModel | Finance details |
| financeApplyingFor (required) | enum(FinanceApplyingFor) | One of ["Car", "LightCommercial", "CAFAsset"]. The type of Vehicle: Car => normal cars = 1, LightCommercial => Vans and others commercial vehicles = 2, CAFAsset = Tractors and others vehicles = 3 |
| businessData | BusinessModel | Required if the BorrowerType is Partnership, LimitedCompany or SoleTrader. Common fields for all businesses. |
| company | CompanyModel | Required if the BorrowerType is Partnership or LimitedCompany. Fields for Company. |
| furtherInformation | string | Further information |
| newVehicle | NewVehicleModel | Required if UsedVehicle is null. Fields for new vehicles |
| partnership | PartnershipModel | Required if the BorrowerType is Partnership. Fields for Partnership |
| quoteReference | string | Required if the intent is to resubmit a quote that failed a previous submit attempt. Null if it is a new submission |
| soleTrader | SoleTraderModel | Required if the BorrowerType is SoleTrader. Fields for SoleTrader |
| usedVehicle | UsedVehicleModel | Required if NewVehicle is null. Fields for used vehicles |
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 Name | Type | Description |
|---|---|---|
| accountName (required) | string | The name of the bank account |
| accountType (required) | enum(AccountType) | One of ["IndividualAccount", "JointAccount"]. The bank account type. Individual Account = 1. Joint Account = 2 |
| bank (required) | enum(Bank) | One of ["AlliedIrishBanks", "BankOfIreland", "BarclaysBankIreland", "BNPParibas", "CreditUnion", "EBS", "N26", "NationalIrishBank", "PermanentTSB", "Revolut" "AnPost"]. The bank that holds the account |
| yearsWithBank (required) | integer(int32) | How many years the applicant uses this bank. Must be a positive whole number |
| accountNumber | string | The Bank account's number. Must be not less than 8 characters |
| address | string | The address of the Bank's branch that holds the account |
| bicCode | string | The Bank account's Bank Identifier Code |
| branch | string | The identification of the Bank's branch that holds the account |
| iban | string | The Bank account's International Bank Account Number |
| sortCode | string | The 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 |
BusinessModel
javascript
{
"businessCcrCounty": "GALWAY",
"averageTurnoverPerMonth": 0,
"businessAddress": { ... },
"businessEmail": "a@co.com",
"businessTelephone": "0838333333",
"numberOfEmployees": 1,
"typeOfBusiness": "Accounting",
"yearIncorporated": "1995",
}| Field Name | Type | Description |
|---|---|---|
| businessCcrCounty (required) | enum(CcrCounty) | One of ["GALWAY", "LEITRIM", "MAYO", "ROSCOMMON", "SLIGO", "CARLOW", "MONAGHAN", "KILDARE", "KILKENNY", "LAOIS", "LONGFORD", "LOUTH", "MEATH", "OFFALY", "WESTMEATH", "WEXFORD", "WICKLOW", "CLARE", "CORK", "KERRY", "LIMERICK", "TIPPERARY", "WATERFORD", "CAVAN", "DONEGAL", "DUBLIN"]. Required if the BorrowerType is Partnership, LimitedCompany or SoleTrader. The county of the business address in CCR list. CCR => Central Credit Register (Central Bank of Ireland) |
| averageTurnoverPerMonth | number(double) | Required if the BorrowerType is Partnership, LimitedCompany or SoleTrader. The average turnover per month of the Business. Must be whole euros |
| businessAddress | AddressModel | Required if the BorrowerType is Partnership, LimitedCompany or SoleTrader. The address of the business |
| businessEmail | string | Required if the BorrowerType is Partnership, LimitedCompany or SoleTrader. Business email address. Must be a valid email address |
| businessTelephone | string | Required if the BorrowerType is Partnership, LimitedCompany or SoleTrader. Business phone number. Must be a valid Ireland phone number |
| numberOfEmployees | integer(int32) | Required if the BorrowerType is Partnership, LimitedCompany or SoleTrader. The Number of employees in the Business. Must be a non-negative integer |
| typeOfBusiness | string | Required if the BorrowerType is Partnership, LimitedCompany or SoleTrader. The type that the Business |
| yearIncorporated | string | Required if the BorrowerType is Partnership, LimitedCompany or SoleTrader. The year that the Business was incorporated. Must be an integer >= 1900 |
CarModel
javascript
{
"fuel": "Diesel",
"id": "JEuGXaXXjLLTa348T95fB2MfGn1trTtPcEmnpYG4Whc=",
"specification": "2.2JTD 190hp Sprint",
}| Field Name | Type | Description |
|---|---|---|
| fuel | string | The fuel that should be used in new cars fields |
| id | string | The id that should be used in new cars fields |
| specification | string | The specification that should be used in new cars fields |
CarSpecificationResponseModel
javascript
{
"cars": [ { ... }, { ... } ],
"make": "Alfa Romeo",
"model": "Giulia",
"specification": "2.2JTD 190hp Sprint",
}| Field Name | Type | Description |
|---|---|---|
| cars | CarModel[] | The list of cars that match the search |
| make | string | The make used in the search |
| model | string | The make model in the search |
| specification | string | The make specification in the search |
CompanyModel
javascript
{
"companyRegistrationNumber": "(string)",
"legalName": "(string)",
"numberOfDirectors": 0,
}| Field Name | Type | Description |
|---|---|---|
| companyRegistrationNumber | string | Required if the BorrowerType is LimitedCompany. The company registration number. Must be a valid registration number |
| legalName | string | Required if the BorrowerType is Partnership. The Legal Name for Partnership |
| numberOfDirectors | integer(int32) | Required if the BorrowerType is SoleTrader. The number of directors in the Business. Must be a non-negative integer |
ContactDetailsModel
javascript
{
"addressHistory": [ { ... }, { ... } ],
"emailAddress": "a@co.com",
"mainPhoneNumber": "0838333333",
"otherPhoneNumber": "0838333333",
}| Field Name | Type | Description |
|---|---|---|
| addressHistory (required) | AddressHistoryModel[] | Applicant's address history. Must be at least 3 years of address history |
| emailAddress (required) | string | Applicant's email address. Must be a valid email address |
| mainPhoneNumber (required) | string | Applicant's main phone number. Must be a valid Ireland mobile phone number |
| otherPhoneNumber | string | Applicant's other phone number. Must be a valid Ireland phone number |
EmploymentModel
javascript
{
"employerAddress": { ... },
"employmentPhoneNumber": "0838333333",
"employmentType": "FullTime",
"industryCategory": "Computer Software/Engineering",
"occupationTitle": "Software Engineer",
"timeInThisEmployment": "LessThan6Months",
"employerName": "John Doe",
"employmentStatus": "Permanent",
"workPermitExpiryDate": "(string)",
"workPermitNumber": "1",
}| Field Name | Type | Description |
|---|---|---|
| employerAddress (required) | AddressModel | Applicant's employment address |
| employmentPhoneNumber (required) | string | Applicant's employment phone numberPhone. Must be an Irish number |
| employmentType (required) | enum(EmploymentType) | One of ["FullTime", "PartTime", "SelfEmployed"]. Applicant's employment type. Full time = 1, Part time = 2, Self Employed = 3 |
| industryCategory (required) | string | Applicant's employment industry category |
| occupationTitle (required) | string | Applicant's employment occupation title. Must be at least two characters |
| timeInThisEmployment (required) | enum(Duration) | One of ["LessThan6Months", "From6To12Months", "About1Year", "About2Years", "About3Years", "About4Years", "About5Years", "About6Years", "About7Years", "About8Years", "About9Years", "About10YearsOrMore"].Applicant's time in this employment |
| employerName | string | Required if EmploymentType is FullTime or PartTime. Applicant's employer name |
| employmentStatus | enum(EmploymentStatus) | One of ["Permanent", "Temporary", "Contract"]. Required if EmploymentType is FullTime or PartTime. Applicant's employment type. Permanent = 1, Temporary = 2, Contract = 3, |
| workPermitExpiryDate | string(date-time) | Applicant's work permit expiry date |
| workPermitNumber | string | Applicant's work permit number |
FinanceModel
javascript
{
"assetPurchasePrice": 30000,
"term": 60,
"tradeInValueDeposit": 6000,
"tradeInRegistrationNumber": "(string)",
}| Field Name | Type | Description |
|---|---|---|
| assetPurchasePrice (required) | number(double) | The Fuel of the new car. Must be a non-negative integer. Must be less or equal to €100,000. 00 |
| term (required) | integer(int32) | The number of months of the loan. Must be an integer. Must be greater than or equal to 48. The maximum term depends of 1 parameter. VehicleRegDate: The vehicle registration date. If (VehicleRegDate is after 1st January 2019 months) Then ("Term" must be less than or equal to 72). Else-If (VehicleRegDate is after 1st January 2016) Then ("Term" must be less than or equal to 60 months). Else-If (VehicleRegDate is after 1st January 2015) Then ("Term" must be less than or equal to 48 months). |
| tradeInValueDeposit (required) | number(double) | The trade in car's value + the deposit value. Must be less than the AssetPurchasePrice - €5,000. 00. Must be an integer. If (the dealer has special agreement with bluestone). Then (Must be a non-negative integer). Else (Must be a greater them or equal to 15% of AssetPurchasePrice) |
| tradeInRegistrationNumber | string | The trade in car's registration number |
IncomeExpenditureModel
javascript
{
"mortgageRentPayment": 1000,
"netSalaryPerMonth": 2500,
"otherIncomePerMonth": 0,
}| Field Name | Type | Description |
|---|---|---|
| mortgageRentPayment (required) | number(double) | Applicant's mortgage or rent payment. Must be a non-negative integer. Must be whole euros |
| 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 |
| otherIncomePerMonth | number(double) | Applicant's other income per month. Must be a non-negative integer. Must be whole euros |
NewVehicleModel
javascript
{
"carId": "JEuGXaXXjLLTa348T95fB2MfGn1trTtPcEmnpYG4Whc=",
"fuel": "Diesel",
"make": "Alfa Romeo",
"model": "Giulietta",
"specification": "1.6 JTDM-2 120 hp Sprint",
}| Field Name | Type | Description |
|---|---|---|
| carId | string | Required if UsedVehicle is null. The Id of the new car. Id's can be retrieved using "api/car/specification" endpoint |
| fuel | string | Required if UsedVehicle is null. The Fuel of the new car. Preferable: Petrol, Diesel, Electric or Hybrid |
| make | string | Required if UsedVehicle is null. The Make of the new car |
| model | string | Required if UsedVehicle is null. The Model of the new car |
| specification | string | Required if UsedVehicle is null. The Specification of the new car |
NodeJsFieldValidation
javascript
{
"message": "(string)",
"model": "(string)",
"type": "(string)",
}| Field Name | Type | Description |
|---|---|---|
| message | string | (no description) |
| model | string | (no description) |
| type | string | (no description) |
PartnershipModel
javascript
{
"legalName": "(string)",
}| Field Name | Type | Description |
|---|---|---|
| legalName | string | Required if the BorrowerType is Partnership. The Legal Name for Partnership |
PersonalInfoModel
javascript
{
"dateOfBirth": "(string)",
"firstName": "John",
"lastName": "Doe",
"nationality": "Irish",
"ppsNumber": "1234567T",
"residentialStatus": "HomeOwner",
"title": "Mr",
"maidenName": "Doe",
"maritalStatus": "Single",
"middleName": "Joseph",
"numberOfDependents": 1,
}| Field Name | Type | Description |
|---|---|---|
| dateOfBirth (required) | string(date-time) | Date of birth of the Applicant. All applicants must be over 21 years old and under 70 years old |
| firstName (required) | string | First name of the Applicant. Must be a valid person's name |
| lastName (required) | string | Last name of the Applicant. Must be a valid person's name |
| nationality (required) | string | Nationality of the Applicant |
| ppsNumber (required) | string | PPS Number of the Applicant. Must be a valid PPS Number. PPSN has (usually) 9 characters, with the 8th one being the "verification digit" |
| residentialStatus (required) | enum(ResidentialStatus) | One of ["HomeOwner", "Tenant", "LivingWithParents"]. Residential status of the Applicant: Home Owner = 1, Tenant = 2, Living with parents = 3 |
| title (required) | enum(Title) | One of ["Mr", "Mrs", "Ms", "Miss"]. Mr = 1, Mrs = 2, Ms = 3, Miss = 5. Title of the Applicant |
| maidenName | string | Required 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 |
| maritalStatus | enum(MaritalStatus) | One of ["Single", "Married", "Widowed", "Separated", "Divorced"]. |
| middleName | string | Middle name of the Applicant. Must be a valid person's name. Enter your Last Name here if your name has not changed |
| numberOfDependents | integer(int32) | Number of dependents status of the Applicant. Must be a non-negative integer |
SoleTraderModel
javascript
{
"tradingAs": "(string)",
}| Field Name | Type | Description |
|---|---|---|
| tradingAs | string | Required if the BorrowerType is Partnership or LimitedCompany. The "Trading As" name of the Business |
StatusResponseModel
javascript
{
"date": "(string)",
"customData": { ... },
"quoteReference": "(string)",
"status": "Success",
}| Field Name | Type | Description |
|---|---|---|
| date (required) | string(date-time) | The date and time of the status change |
| customData | object | A dictionary of custom data that can be added to the quote. This data will also sent back in the webhooks |
| quoteReference | string | The quote reference |
| status | string | The current status of the quote |
SubmitApplicationRequestModel
javascript
{
"quote": { ... },
"customData": { ... },
"ownerUserEmail": "test-dealer-ie@bluestonemf.ie",
}| Field Name | Type | Description |
|---|---|---|
| quote (required) | ApplicationModel | The data of the quote |
| customData | object | A dictionary of custom data that can be added to the quote. This data will also be sent back in the webhooks |
| ownerUserEmail | string | Required if the API is not a dealer. Should be the valid email address. The email of the user that will be the owner of the quote. This user needs to allow you to submit quotes in his behalf |
SubmitApplicationResponseModel
javascript
{
"status": "ServerError",
"errorMessage": "(string)",
"errors": [ { ... }, { ... } ],
"quoteReference": "(string)",
"wasSubmitted": true,
}| Field Name | Type | Description |
|---|---|---|
| status (required) | enum(ApiResponseStatusType) | One of ["ServerError", "Success", "NotFound", "Invalid", "Denied", "Forbidden"]. |
| errorMessage | string | (no description) |
| errors | NodeJsFieldValidation[] | This is the list of invalid fields and its reasons |
| quoteReference | string | The Quote Reference used to find the quote in Bluelink and retry the submission |
| wasSubmitted | boolean | (no description) |
UsedVehicleModel
javascript
{
"currentKilometers": 112575,
"registrationNumber": "162C4558",
}| Field Name | Type | Description |
|---|---|---|
| currentKilometers | integer(int32) | Required if NewVehicle is null. Vehicle's Current Kilometre. Must be a non-negative integer. Must be less than or equal to 200000 |
| registrationNumber | string | Required if NewVehicle is null. Must be valid registration number. Fields for used vehicles |