# Application Forms API
This API is only available for Premium accounts.
# On this page
# Basic information
Application forms are essentially extended versions of leads. Technically, multiple application forms can be associated with each lead.
# Statuses
Application forms can have three statuses:
- Draft
- Submitted
- Un-submitted
Draft state: This is the default state. This means that users have not completed filling out the form yet. Any application form in draft status can be updated at any time using the appropriate API endpoint.
Submitted state: The application form has already been submitted, and its contents cannot be modified. An exception to this is the un-submission of the form, which can be initiated by the Housing Provider (for example, if the client wishes to make changes to a previously submitted application form).
Un-submitted state: This special status occurs when the Housing Provider initiates the un-submission of a previously submitted form. In this case, the system creates a copy of the previously submitted application form, placing it in a draft state, allowing clients to continue editing the previously submitted form.
It's important to note that in this scenario, the application IDs change because the original application form transitions into an unsubmitted state, and the new application form will have a new application form ID.
# Site
We can define a so-called 'site' for application forms, which essentially represents the source. If this is not provided, every created application form, its associated lead, and the customers created by the application form will be created within the scope of the KPRO API site. Depending on the configuration, Housing Providers can have their own siteIds. Please contact us regarding this.
# Get application forms
The endpoint to get application forms is:
GET to /api/rest/open/assessments
Remember you need to pass the QueryString parameter api_key
with your API key to get access to the resources.
# Export payload
All responses are JSON encoded, and as they are paginated, the data is contained into an envelope:
{
"data": [items],
"pagination": {
"currentPage": 2, // current page number
"perPage": 10, // number of items to be shown per page
"total": 212, // total number of items
"from": 11, // number of the first item in the result
"to": 20, // number of the last item in the result
"lastPage": 23, // last page number
},
"links": {
"first": "url to the first page",
"prev": "url to the previous page",
"next": "url to the next page",
"last": "url to the last page",
}
}
where items
is the collection of application forms. Each application form is an object with the following fields:
Field name | Type | Nullable | Description |
---|---|---|---|
id | number | false | Application form reference in Keaze |
leadId | number | false | Application form's Lead reference in Keaze |
site | object | false | Site details |
status | string | false | Application form status. (draft, submitted,un-submitted) |
development | object | true | Development details |
listing | object | true | Listing details |
property | object | true | Property details |
applicants | array | false | Array of the applicants |
# Site details
Field name | Type | Nullable | Description |
---|---|---|---|
id | number | false | Site reference in Keaze |
name | string | false | Site name |
# Listing details
Field name | Type | Nullable | Description |
---|---|---|---|
id | number | false | Listing reference in Keaze |
name | string | false | Listing name |
# Property details
Field name | Type | Nullable | Description |
---|---|---|---|
id | number | false | Property reference in Keaze |
name | string | true | Independent unit name, when it does not belong to a development |
# Applicant details
Field name | Type | Description |
---|---|---|
email | string | Email address of the applicant |
title | string | Title of the applicant. |
firstName | string | First name of the applicant |
middleNames | string | Middle names of the applicant |
lastName | string | Family name of the applicant |
previousSurname | string | Previous surname of the applicant |
maritalStatus | number | Marital status id of the applicant. Please see: Marital statuses |
relationshipToPrimary | number | Relationship id of the joint applicant. Please see: Relationship statuses |
phone | string | Main phone number of the applicant |
homePhone | string | Home phone number of the applicant |
workPhone | string | Work phone number of the applicant |
mobilePhone | string | Mobile phone of the applicant |
dateOfBirth | string | Birth date of the applicant |
nationalInsuranceNumber | string | Applicant's NINO number |
livingCircumstance | number | Living circumstance id of the applicant. Please see: Living circumstances |
addressSameAsMainApplicant | boolean | True if the applicant has the same address as the main applicant |
homeAddressLine1 | string | Applicant's home address line 1 |
homeAddressLine2 | string | Applicant's home address line 2 |
homePostcode | string | Applicant's home postcode |
homeLocalAuthorityId | number | Applicant's local authority Id. Please see: Local authorities or Getting local authorities from the postcode |
homeTown | string | Applicant's home town |
homeCounty | number | Applicant's home county id. Please see: Counties |
homeMoveInDate | string | Date the applicant moved into their current home |
previousAddresses | array | Collection of applicant's previous homes. Please see table below for details. |
workingCircumstance | number | Working circumstance id of the applicant. Please see: Working circumstances |
occupation | string | Applicant's occupation |
employerName | string | Applicant's employer name |
employmentStartDate | string | Applicant's employment start date. |
workAddressLine1 | string | Applicant's work address line 1 |
workAddressLine2 | string | Applicant's work address line 2 |
workPostcode | string | Applicant's work postcode |
workTown | string | Applicant's work town |
workCounty | number | Applicant's work county id. Please see: Counties |
workLocalAuthorityId | number | Applicant's work local authority id. Please see: Local authorities or Getting local authorities from the postcode |
employersContactNumber | string | Applicant's Employer phone number |
employersContactEmail | string | Applicant's Employer email address |
annualSalary | number | Applicant's annual salary |
annualBonuses | number | Applicant's bonuses/year |
monthlyOtherIncome | number | Applicant's other income/month |
monthlyTaxCredits | number | Applicant's monthly tax credits |
monthlyDisabilityAllowance | number | Applicant's monthly disability allowance |
monthlyMaintenance | number | Applicant's monthly maintenance costs |
monetaryGift | number | Applicant's monetary gift |
deposit | number | Applicant's deposit |
savings | number | Applicant's savings |
monthlyCreditCardAndLoanPayments | number | Applicant's monthly credit card and loan payments |
monthlyRent | number | Applicant's current monthly rent |
creditCardBalance | number | Applicant's current credit card balance |
hasLoans | boolean | |
loanBalance | number | Applicant's loan balance |
loanPurpose | string | Applicant's loan purpose |
loanEndDate | string | Applicant's loan end date |
failedLoanOrCreditAgreement | boolean | Applicant's failed to keep up on a loan or any form of credit agreement |
declaredBankrupt | boolean | Applicant's declared bankrupt or has an unsatisfied CCJ within the last 6 years |
enteredIVA | boolean | Applicant's entered into an IVA (Individual Voluntary Credit Agreement) |
councilWaitingListReferenceNumber | string | Applicant's council waiting list reference number |
ownsProperty | boolean | Applicant owns a property |
homeOwnershipStatus | number | Applicant home ownership status. Please see: Home Ownership Statuses |
currentHomeBeds | number | Applicant's current home bedrooms number |
ownPets | boolean | Applicant has pets |
dependants | number | Applicant's dependants number |
helpToBuyReference | string | Applicant's Help to buy reference if applicable |
helpToBuyRegistered | boolean | Applicant is registered in Help to buy |
homeBuyRegistered | boolean | Applicant is registered in Home buy |
laRegistered | boolean | Applicant is registered in London Authority |
nationality | number | Applicant's nationality |
ethnicity | number | Applicant's ethnicity |
religion | number | Applicant's religion |
sexuality | number | Applicant's sexuality |
gender | number | Applicant's gender |
relatedToHAWorker | boolean | |
relationshipToHAWorker | number | |
MODWorker | boolean | True if applicant is a Ministry of defense worker/Surviving Partner |
anyoneInHouseholdDisabled | boolean | True if the applicant consider anyone in household to be disabled |
registeredDisabled | boolean | True if the applicant is registered disabled |
wheelchairUser | boolean | True if the applicant is a wheelchair user |
accessibilityNeeds | string | Applicant's accessibility needs (if any) |
adultsLiveInHome | number | Number of adults who will live in the new home |
completedHTB | boolean | Completed Help to Buy |
HTBApplicationNumber | string | Help to Buy application number |
immediateFamilyInLocalAuthority | boolean | Do you have immediate family who live in the local authority in which you are applying for? |
immediateFamilyRelation | string | |
hearAbout | string | Where did you first see or hear about the development? |
preferredPlots | array |
Previous addresses array:
Field name | Type | Description |
---|---|---|
addressLine1 | string | Previous address line 1 |
addressLine2 | string | Previous address line 2 |
postcode | string | Previous address postcode |
town | string | Previous address town |
localAuthorityId | number | Previous address local authority Id. Please see: Local authorities or Getting local authorities from the postcode |
county | number | Previous address county id. Please see: Counties |
dateMovedIn | string | Date when the Applicant moved in to this previous address |
# Filtering
The API provides several fields that can be used to filter the results:
createdAt
: the timestamp when the application form was inserted into the KPRO database.status
: the status of the application form. Can be: submitted, un-submitted, draft.listing.id
: the ID of this listing linked to the application form.listing.name
: the name of this listing linked to the application form.listing.development.id
: the id of the development for the listing that the application form is linked.development.id
: id of the development linked to the application form.property.id
: id of the property linked to the application form.property.propertyNumber
: number/name of the property linked to the application form.customer.id
: the application form's main applicant's customer id.customer.firstName
: the application form's main applicant's first name.customer.lastName
: the application form's main applicant's last name.customer.fullName
: the application form's main applicant's full name.customer.phone
: the application form's main applicant's phone number.customer.email
: the application form's main applicant's email address.
and several operators to be used in conjunction with the fields:
not
: not equalgt
: greater than (for numbers, date and timestamps)lt
: less than (for numbers, date and timestamps)gte
: greater than or equal to (for numbers, date and timestamps)lte
: less than or equal to (for numbers, date and timestamps)ltt
: less than tomorrow's date, useful for datetime or timestamp fields when the filter value is a date without the time componentin
: in a list of values separated by commasnotin
: not in a list of values separated by commas
Operators should be placed after the fields, separated by a dot (.
). When multiple filters are specified, the AND logic operator will be used (except when using square brackets at the end of the parameter name to replace in
and notin
operators). When no operator is specified for a filter, the usual equal comparison is applied.
In order to filter dates and timestamps, use the ISO date format YYYY-MM-DD for dates, and if you want to include hours and minutes, use YYYY-MM-DD HH:mm. Notice that in all cases, UTC date/time is used.
Examples
- To get application forms created between 01-Mar-2021 and 10-Mar-2021, inclusive. Notice as the
createdAt
field is a timestamp, you should use the operatorltt
to include application forms created at any time on 10-Mar-2021.
/api/rest/open/assessments?createdAt.gte=2021-03-01&createdAt.ltt=2021-03-10
- To get leads created between 11-Mar-2021 10:00 and 11:00, inclusive.
/api/rest/open/assessments?createdAt.gte=2021-03-11 10:00&createdAt.lte=2021-03-11 11:00
# Bracket option
Brackets can be used instead of values separated by commas to replace the operators in
and notin
.
Examples
listing.id[]=1&listing.id[]=2
is the same aslisting.id.in=1,3
listing.id.not[]=1&listing.id.not[]=2
is the same aslisting.id.notin=1,3
# Sorting
By default results are sorting by createdAt
descending, but you can change it by using parameter sort
and the field of fields you want to sort by, separated by comma, as the value. Fields are sorted ascending, but you use the minus symbol (-
) in front of any of fields to change the order to descending.
Example, to sort first by listing.id
descending, and then by createdAt
also descending, use: sort=-site.id,-createdAt
# Pagination
Results are paginated based on parameters page
(page number, optional, default is 1) and size
(maximum number of records to return per page, optional, default is 100, maximum possible value is 1000).
# Adding application forms
To start an application form, issue a POST request to /api/rest/open/assessments
.
# Minimum Payload
The payload must be JSON encoded.
{
"listingId": xxx, // Keaze listingId reference
"applicants": [applicant]
}
When starting an application the following fields are required:
listingId
applicant
at least one applicantapplicant[0].email
applicant's email addressapplicant[0].firstName
applicant's first nameapplicant[0].lastName
applicant's last nameapplicant[0].phone
applicant's phone
An example payload should look like this:
{
"listingId": 1444,
"applicants": [
{
"email": "john.smith1990@gmail.com",
"firstName": "John",
"lastName": "Smith",
"phone": "074712345678"
}
]
}
After sending the request above, the system follows the following logic:
If the applicant already has a lead associated with the same listingId, no new lead record is created. However, a new application form record is created for this lead, and it is initially set to the 'draft' status.
If the applicant does not have a lead record for this listing, a new lead record is created, and an application form record (draft state) is immediately attached to it.
Example response after sending the example request above:
{
"id": 721, // Application form Id in Keaze
"leadId": 446842, // Lead record Id in Keaze. (You can query this record with the Leads API)
"listing": {
"id": 1444, // Listing Id in Keaze
"name": "Preston Road" // Listing name
},
"site": {
"id": 6, // Site Id in Keaze
"name": "Kpro API" // Site name
},
"property": null, // Property object (if defined in request)
"status": "draft", // Status of the Application form
"applicants": [
{
"email": "john.smith1990@gmail.com", // main applicant email
"phone": "074712345678", // main applicant phone
"lastName": "Smith", // main applicant last name
"firstName": "John", // main applicant first name
"customerId": 344919 // customer record Id created for applicant
}
],
"updatedAt": "2023-10-17T13:38:50+00:00",
"createdAt": "2023-10-17T13:38:50+00:00"
}
Afterward, there is the possibility to update the application form, as described in the 'Updating Application form' section.
As an alternative, there is an option to submit the entire application form.
In this case, however, it requires filling in additional fields.
For full submission, we continue to use the existing URL and method but define the submit = true
parameter in the request.
{
"listingId": 1444,
"submit": true,
"applicants": [
{
"email": "john.smith1990@gmail.com",
"firstName": "John",
"lastName": "Smith",
"phone": "074712345678",
...
}
]
}
# Full payload
{
"listingId": 1444,
"propertyId": 2333,
"siteId": 1,
"submit": true,
"applicants": [
{
"email": "john.smith1990@gmail.com",
"title": "mr",
"firstName": "John",
"middleNames": "Edward",
"lastName": "Smith",
"previousSurname": "Doe",
"dateOfBirth": "1990-05-20",
"maritalStatus": 1,
"gender": 1,
"MODWorker": true,
"phone": "074712345678",
"homePhone": "074712345677",
"workPhone": "0207123456",
"mobilePhone": "0777123456",
"nationalInsuranceNumber": "AB123456C",
"livingCircumstance": 1,
"homeAddressLine1": "123 Main Street",
"homeAddressLine2": "Apt 4B",
"homePostcode": "W1W 7RG",
"homeLocalAuthorityId": 322,
"homeTown": "London",
"homeCounty": 27,
"homeMoveInDate": "2017-06-12",
"previousAddresses": [
{
"addressLine1": "456 Elm Avenue",
"addressLine2": "Building A",
"postcode": "M4 6WX",
"town": "Manchester",
"localAuthorityId": 173,
"county": 62,
"dateMovedIn": "1999-10-31"
},
{
"addressLine1": "789 Oak Street",
"addressLine2": "Suite 2C",
"postcode": "L4 6TX",
"town": "Liverpool",
"localAuthorityId": 168,
"county": 65,
"dateMovedIn": "2005-08-15"
}
],
"workingCircumstance": 7,
"occupation": "Software Engineer",
"employmentStartDate": "2018-10-24",
"employerName": "Acme Group",
"workAddressLine1": "555 Tech Road",
"workAddressLine2": "Floor 6",
"workPostcode": "L4 6TX",
"workTown": "Liverpool",
"workCounty": 65,
"workLocalAuthorityId": 168,
"employersContactNumber": "0207123456",
"employersContactEmail": "hr@acmegroup.com",
"annualSalary": 55000,
"annualBonuses": 12000,
"monthlyOtherIncome": 1300,
"monthlyTaxCredits": 1900,
"monthlyDisabilityAllowance": 2500,
"monthlyMaintenance": 500,
"monetaryGift": 2000,
"deposit": 5000,
"savings": 11000,
"monthlyCreditCardAndLoanPayments": 1400,
"monthlyRent": 1250,
"creditCardBalance": 4800,
"hasLoans": true,
"loanBalance": 4200,
"loanPurpose": "home improvement",
"loanEndDate": "2029-03-12",
"failedLoanOrCreditAgreement": false,
"declaredBankrupt": false,
"enteredIVA": false,
"councilWaitingListReferenceNumber": "CW12345",
"helpToBuyReference": "HTB6789",
"ownsProperty": false,
"homeOwnershipStatus": 1,
"currentHomeBeds": 2,
"laRegistered": true,
"homeBuyRegistered": true,
"helpToBuyRegistered": true,
"ownPets": true,
"dependants": 2,
"nationality": 1,
"ethnicity": 1,
"religion": 2,
"sexuality": 3,
"relatedToHAWorker": true,
"relationshipToHAWorker": 3,
"anyoneInHouseholdDisabled": true,
"registeredDisabled": true,
"wheelchairUser": true,
"accessibilityNeeds": "No specific needs",
"adultsLiveInHome": 3,
"completedHTB": true,
"HTBApplicationNumber": "XXX1212",
"immediateFamilyInLocalAuthority": true,
"immediateFamilyRelation": "sibling",
"hearAbout": "Online advertisement",
"preferredPlots": [1212, 1234]
},
{
"email": "jane.doe1985@hotmail.com",
"title": "ms",
"firstName": "Jane",
"middleNames": "Marie",
"lastName": "Doe",
"previousSurname": "Johnson",
"dateOfBirth": "1985-08-10",
"maritalStatus": 1,
"gender": 2,
"MODWorker": false,
"relationshipToPrimary": 1,
"phone": "07123456789",
"homePhone": "07123456788",
"workPhone": "",
"mobilePhone": "",
"nationalInsuranceNumber": "CD987654A",
"addressSameAsMainApplicant": true,
"livingCircumstance": 1,
"homeAddressLine1": "567 Park Avenue",
"homeAddressLine2": "Apt 3D",
"homePostcode": "L9 1JB",
"homeLocalAuthorityId": 168,
"homeTown": "Liverpool",
"homeCounty": 65,
"homeMoveInDate": "2015-03-20",
"previousAddresses": [
{
"addressLine1": "123 Elm Street",
"addressLine2": "Unit 5B",
"postcode": "L9 1AB",
"town": "Liverpool",
"localAuthorityId": 168,
"county": 65,
"dateMovedIn": "2007-12-15"
},
{
"addressLine1": "890 Oak Lane",
"addressLine2": "Unit A",
"postcode": "W1W 7RG",
"town": "London",
"localAuthorityId": 322,
"county": 27,
"dateMovedIn": "2010-06-08"
}
],
"workingCircumstance": 7,
"occupation": "Teacher",
"employmentStartDate": "2010-09-15",
"employerName": "Maplewood High School",
"workAddressLine1": "789 School Road",
"workAddressLine2": "Unit 2A",
"workPostcode": "W1W 7TF",
"workTown": "London",
"workCounty": 27,
"workLocalAuthorityId": 322,
"employersContactNumber": "0712345678",
"employersContactEmail": "hr@maplewoodhigh.edu",
"annualSalary": 45000,
"annualBonuses": 8000,
"monthlyOtherIncome": 1100,
"monthlyTaxCredits": 1700,
"monthlyDisabilityAllowance": 2000,
"monthlyMaintenance": 600,
"monetaryGift": 2500,
"deposit": 6000,
"savings": 8000,
"monthlyCreditCardAndLoanPayments": 1300,
"monthlyRent": 1100,
"creditCardBalance": 3800,
"hasLoans": false,
"loanBalance": 0,
"loanPurpose": "",
"loanEndDate": "",
"failedLoanOrCreditAgreement": false,
"declaredBankrupt": false,
"enteredIVA": false,
"councilWaitingListReferenceNumber": "",
"helpToBuyReference": "",
"ownsProperty": true,
"homeOwnershipStatus": 4,
"currentHomeBeds": 3,
"laRegistered": false,
"homeBuyRegistered": false,
"helpToBuyRegistered": false,
"ownPets": false,
"dependants": 1,
"nationality": 2,
"ethnicity": 2,
"religion": 8,
"sexuality": 7,
"relatedToHAWorker": true,
"relationshipToHAWorker": 3,
"anyoneInHouseholdDisabled": false,
"registeredDisabled": false,
"wheelchairUser": false,
"accessibilityNeeds": "",
"adultsLiveInHome": 2,
"completedHTB": false,
"HTBApplicationNumber": "",
"immediateFamilyInLocalAuthority": false,
"immediateFamilyRelation": "",
"hearAbout": "Friend's recommendation",
"preferredPlots": [2345, 3456]
}
]
}
# Validation rules
Field name | Type | Required | Description |
---|---|---|---|
listingId | number | true | Reference Id for the listing |
propertyId | number | false | Reference Id for the property |
siteId | number | false | Identifier in KPro Marketing of the site used as a source. Please ask us about your siteId. If not specified, both the lead and customer data will default to 'KPRO API' as the source. |
applicants | array | true | Collection of Applicants. Please see details below. |
Applicants array:
Field name | Type | Required | Other validation rules | Description |
---|---|---|---|---|
email | string | true | Must be an email address. Maximum 255 characters | Email address of the applicant |
title | string | true | Maximum 50 characters | Title of the applicant. |
firstName | string | true | Maximum 255 characters | First name of the applicant |
middleNames | string | false | Maximum 255 characters | Middle names of the applicant |
lastName | string | true | Maximum 255 characters | Family name of the applicant |
previousSurname | string | false | Maximum 255 characters | Previous surname of the applicant |
maritalStatus | number | true | Marital status id of the applicant. Please see: Marital statuses | |
relationshipToPrimary | number | false | Relationship id of the joint applicant. Please see: Relationship statuses | |
phone | string | true | Maximum 20 characters | Main phone number of the applicant |
homePhone | string | false | Maximum 20 characters | Home phone number of the applicant |
workPhone | string | false | Maximum 20 characters | Work phone number of the applicant |
mobilePhone | string | false | Maximum 20 characters | Mobile phone of the applicant |
dateOfBirth | string | true | Date format: Y-m-d (e.g: 2022-01-01), Date must be in the past | Birth date of the applicant |
nationalInsuranceNumber | string | false | Maximum 255 characters | Applicant's NINO number |
livingCircumstance | number | true | Living circumstance id of the applicant. Please see: Living circumstances | |
addressSameAsMainApplicant | boolean | true | Not required for the main applicant. Required for additional applicants. | True if the applicant has the same address as the main applicant |
homeAddressLine1 | string | true | Required if: addressSameAsMainApplicant is false. Maximum 255 characters | Applicant's home address line 1 |
homeAddressLine2 | string | true | Maximum 255 characters | Applicant's home address line 2 |
homePostcode | string | true | Required if: addressSameAsMainApplicant is false. Maximum 255 characters | Applicant's home postcode |
homeLocalAuthorityId | number | true | Required if: addressSameAsMainApplicant is false .Maximum 255 characters | Applicant's local authority Id. Please see: Local authorities or Getting local authorities from the postcode |
homeTown | string | false | Maximum 255 characters | Applicant's home town |
homeCounty | number | false | Applicant's home county id. Please see: Counties | |
homeMoveInDate | string | true | Date format: Y-m-d, Date must be in the past | Date the applicant moved into their current home |
previousAddresses | array | false | Collection of applicant's previous homes. Please see table below for details. | |
workingCircumstance | number | true | Working circumstance id of the applicant. Please see: Working circumstances | |
occupation | string | false | Maximum 255 characters | Applicant's occupation |
employerName | string | true* | Required if the applicant is working. Maximum 255 characters | Applicant's employer name |
employmentStartDate | string | false | Maximum 255 characters | Applicant's employment start date. |
workAddressLine1 | string | true* | Required if the applicant is working. Maximum 255 characters | Applicant's work address line 1 |
workAddressLine2 | string | true* | Required if the applicant is working. Maximum 255 characters | Applicant's work address line 2 |
workPostcode | string | true* | Required if the applicant is working. Maximum 255 characters | Applicant's work postcode |
workTown | string | false | Maximum 255 characters | Applicant's work town |
workCounty | number | false | Applicant's work county id. Please see: Counties | |
workLocalAuthorityId | number | true | Required if the applicant is working. | Applicant's work local authority id. Please see: Local authorities or Getting local authorities from the postcode |
employersContactNumber | string | false | Maximum 255 characters | Applicant's Employer phone number |
employersContactEmail | string | false | Maximum 255 characters. Must be a valid email address. | Applicant's Employer email address |
annualSalary | number | true | Must be greater than 0 | Applicant's annual salary |
annualBonuses | number | false | Must be greater or equal 0 | Applicant's bonuses/year |
monthlyOtherIncome | number | false | Must be greater or equal 0 | Applicant's other income/month |
monthlyTaxCredits | number | false | Must be greater or equal 0 | Applicant's monthly tax credits |
monthlyDisabilityAllowance | number | false | Must be greater or equal 0 | Applicant's monthly disability allowance |
monthlyMaintenance | number | false | Must be greater or equal 0 | Applicant's monthly maintenance costs |
monetaryGift | number | false | Must be greater or equal 0 | Applicant's monetary gift |
deposit | number | true | Must be greater or equal 0 | Applicant's deposit |
savings | number | true | Must be greater or equal 0 | Applicant's savings |
monthlyCreditCardAndLoanPayments | number | false | Must be greater or equal 0 | Applicant's monthly credit card and loan payments |
monthlyRent | number | false | Must be greater or equal 0 | Applicant's current monthly rent |
creditCardBalance | number | false | Must be greater or equal 0 | Applicant's current credit card balance |
hasLoans | boolean | false | ||
loanBalance | number | true* | Required if applicant's hasLoans == true, Must be greater or equal 0 | Applicant's loan balance |
loanPurpose | string | true* | Required if applicants' hasLoans == true, Maximum 255 characters | Applicant's loan purpose |
loanEndDate | string | true* | Required if applicant's hasLoans == true, date format: Y-m-d. Must be a future date | Applicant's loan end date |
failedLoanOrCreditAgreement | boolean | true | Applicant's failed to keep up on a loan or any form of credit agreement | |
declaredBankrupt | boolean | true | Applicant's declared bankrupt or has an unsatisfied CCJ within the last 6 years | |
enteredIVA | boolean | true | Applicant's entered into an IVA (Individual Voluntary Credit Agreement) | |
councilWaitingListReferenceNumber | string | false | Applicant's council waiting list reference number | |
ownsProperty | boolean | false | Applicant owns a property | |
homeOwnershipStatus | number | false | Applicant home ownership status. Please see: Home Ownership Statuses | |
currentHomeBeds | number | false | Must be greater or equal 0 | Applicant's current home bedrooms number |
ownPets | boolean | true | Applicant has pets | |
dependants | number | false | Must be greater or equal 0 | Applicant's dependants number |
helpToBuyReference | string | false | Maximum 100 characters | Applicant's Help to buy reference if applicable |
helpToBuyRegistered | boolean | false | Applicant is registered in Help to buy | |
homeBuyRegistered | boolean | false | Applicant is registered in Home buy | |
laRegistered | boolean | false | Applicant is registered in London Authority | |
nationality | number | false | Nationality id. Please see: Nationalities | Applicant's nationality |
ethnicity | number | false | Ethnicity id. Please see: Ethnicities | Applicant's ethnicity |
religion | number | false | Religion id. Please see: Religions | Applicant's religion |
sexuality | number | false | Sexuality id. Please see: Sexualities | Applicant's sexuality |
gender | number | true | Gender id. Please see: Genders | Applicant's gender |
relatedToHAWorker | boolean | false | ||
relationshipToHAWorker | number | true | Required if relatedToHAWorker is true, Please see: Relationships | |
MODWorker | boolean | true | True if applicant is a Ministry of defense worker/Surviving Partner | |
anyoneInHouseholdDisabled | boolean | false | True if the applicant consider anyone in household to be disabled | |
registeredDisabled | boolean | false | True if the applicant is registered disabled | |
wheelchairUser | boolean | false | True if the applicant is a wheelchair user | |
accessibilityNeeds | string | false | Maximum 255 characters | Applicant's accessibility needs (if any) |
adultsLiveInHome | number | false | Must be greater or equal 0 | Number of adults who will live in the new home |
completedHTB | boolean | false | Completed Help to Buy | |
HTBApplicationNumber | string | false | Maximum 255 characters | Help to Buy application number |
immediateFamilyInLocalAuthority | boolean | false | Do you have immediate family who live in the local authority in which you are applying for? | |
immediateFamilyRelation | string | false | Required if immediateFamilyInLocalAuthority is true. Maximum 255 characters | |
hearAbout | string | false | Maximum 255 characters | Where did you first see or hear about the development? |
preferredPlots | array | false | Array of plot numbers |
Previous addresses array:
Field name | Type | Required | Other restrictions | Description |
---|---|---|---|---|
addressLine1 | string | true | Maximum 120 characters | Previous address line 1 |
addressLine2 | string | true | Maximum 120 characters | Previous address line 2 |
postcode | string | true | Maximum 120 characters | Previous address postcode |
town | string | false | Maximum 120 characters | Previous address town |
localAuthorityId | number | true | Maximum 120 characters | Previous address local authority Id. Please see: Local authorities or Getting local authorities from the postcode |
county | number | false | Previous address county id. Please see: Counties | |
dateMovedIn | string | true | Date format: Y-m-d. Only past dates allowed | Date when the Applicant moved in to this previous address |
# Updating application forms
To update an application form, issue a PATCH request to /api/rest/open/assessments/{id}
URL where {id}
is the Application form's ID.
With each update request, the complete payload can be sent. However, during update requests, we always use only the minimal validation rules. (See section: Minimum payload)
Please note: You cannot update un-submitted, or submitted application forms.
# Submitting application forms
The submission of the application form can be done in two ways:
If the application form has already been started:
- issue a PATCH request to
/api/rest/open/assessments/{id}
URL where{id}
is the Application form's ID, and include thesubmit=true
parameter in the request.
If the application form not started yet:
- issue a POST request to
/api/rest/open/assessments
URL, and include thesubmit=true
parameter in the request.
When submitting the application form, the system goes through the entire validation process, so sending the necessary fields is required.
Additional information can be found in section 2.5.
Please note: You cannot submit un-submitted or submitted application forms. You can only submit application forms that have the 'draft' status.
# Un-submitting application forms
To un-submit an application form, issue a PATCH request to /api/rest/open/assessments/{id}/un-submit
URL where {id}
is the Application form's ID you want to unsubmit.
In this case, we duplicate the data of the application form, and the old application form enters an 'un-submitted' state, with its content being non-editable from that point forward.
We keep the record only for logging purposes.
The response message includes the newly generated application form ID.
Please note: You cannot un-submit application forms which are not submitted before.