Skip to content

Applicant

Get Applicant information

Returns information about an applicant via their account i.e. user must be logged in.

Request

Example

GET /v2/market/applicant

Parameters

(none)

Response

Example

{
  "registered": true,
  "role": {
    "lastActive": "2021-04-13T15:57:40.43+02:00",
    "validTo": "2022-04-13T00:00:00+02:00",
    "deleteAfter": "2022-07-13T00:00:00+02:00"
  },
  "queues": [
    {
      "id": "residential",
      "displayName": "Bostad",
      "description": "Testar en kötypbeskrivning",      
      "joined": "2021-04-13T08:36:20.08+02:00",
      "isMember": true,
      "value": "0",
      "valueUnit": {
        "id": "point",
        "displayName": "Poäng"
      },
      "commands": [
        {
          "command": "leave",
          "displayName": "Gå ur",
          "checklist": [
            {
              "passed": true,
              "type": "leave"
            }
          ]
        }
      ]
    },
    {
      "id": "parking",
      "displayName": "Fordonsplats",
      "joined": "2021-04-12T16:31:40.717+02:00",
      "value": "1",
      "valueUnit": {
        "id": "point",
        "displayName": "Poäng"
      },
      "commands": [
        {
          "command": "leave",
          "displayName": "Gå ur",
          "checklist": [
            {
              "passed": true,
              "type": "leave"
            }
          ]
        }
      ]
    },
    {
      "id": "senior",
      "displayName": "Senior",
      "joined": "2020-11-01T00:00:00+01:00",
      "value": "163",
      "valueUnit": {
        "id": "point",
        "displayName": "Poäng"
      },
      "commands": [
        {
          "command": "leave",
          "displayName": "Gå ur",
          "checklist": [
            {
              "passed": true,
              "type": "leave"
            }
          ]
        }
      ]
    },
    {
      "id": "youth",
      "displayName": "Ungdom",
      "joined": "2021-04-08T11:47:09.203+02:00",
      "value": "5",
      "valueUnit": {
        "id": "point",
        "displayName": "Poäng"
      },
      "commands": [
        {
          "command": "leave",
          "displayName": "Gå ur",
          "checklist": [
            {
              "passed": true,
              "type": "leave"
            }
          ]
        }
      ]
    }
  ]
}
Name Description
registered If true then the current user is a registered applicant.
role Applicant status information.
queues Queues for an applicant.


.role

Name Description
lastActive Date and time when the applicant was last active.
validTo How long the applicant is valid until removed as applicant. Re-Calculates from when the applicant has been lastActive.
deleteAfter When the applicant getting deleted. Re-Calculates from when the applicant has been last active.


.queues

Name Description
id Id of the queue.
displayName Name of the queue.
description Description of the queue.
joined If the applicant is member of the queue. Date when joined.
isMember true if member of the queue.
value The value for an applicant in the queue. Indicates applicant's position in the queue.
valueUnit The unit for the value.
commands Available commands to perform for the applicant on the queue.


queues.valueUnit

Name Description
id Id of the value unit.
displayName Name of the unit.


queues.commands

Name Description
command Id of the command.
displayName Name of the command.
checklist A set of criteria that must be fulfilled in able to perform the command.


.checklist

Name Description
passed If the user's profile fulfils the criteria.
type Name of the criteria to be fulfilled.
message Message to be presented to the user if the criteria has not been fulfilled in the passed property.


Post Applicant information

Update applicant information for a logged in user.

Request

Example

POST /v2/market/applicant

Parameters

Name Description
register True if the user is to be registered as an applicant i.e able to apply for rental objects. If false and the the queues property contains MarketApplicationQueue items it is then assumed that the user wishes to register as an applicant. If either of the previously two cases apply and the user has previously deregistered themselves then applicant status is reinstated for the user.
queues List (List<MarketApplicantQueue>) of applicant queue identifiers, e.g. residential, and commands, e.g. apply, leave, for queues the user wishes to update.


.queues

Name Description
List<MarketApplicantQueue> List of applicant queue identifiers, e.g. residential, and commands, e.g. apply, leave, for queues the user wishes to update.


.MarketApplicantQueue

Name MarketApplicantQueue
id Non numeric identifier of the queue e.g. residential.
command MarketApplicantPostQueueCommand item containing the command to be executed upon the queue identified by the id property.


.MarketApplicantQueue.MarketApplicantPostQueueCommand

Name MarketApplicantQueue
type The command to be executed as defined in the GET /v2/market/applicant endpointqueues.commandsproperty e.g.apply`.


Response

(none)


Get Applicant status information

Returns applicant status information such as registration information or a list of market object queues etc.

Request

Example

GET /v2/market/applicant/status

Parameters

(none)

Response

Example

Not signed in or signed in user is not registered:

{
  "canRegister": true,
  "isRegistered": false,
  "queues": [
    {
      "id": "residential",
      "displayName": "Bostad",
      "description": "Testar en kötypbeskrivning",      
      "valueUnitDisplayName": "Poäng"
    },
    {
      "id": "parking",
      "displayName": "Fordonsplats",
      "valueUnitDisplayName": "Poäng"
    },
    {
      "id": "senior",
      "displayName": "Senior",
      "valueUnitDisplayName": "Poäng"
    },
    {
      "id": "youth",
      "displayName": "Ungdom",
      "valueUnitDisplayName": "Poäng"
    }
  ]
}

User is signed in, is registered, has joined market object queues, has a pending co-applicant request (numberOfDrafts = 1) and has applications requiring the attention of the user (active = true) :

{
  "canRegister": false,
  "isRegistered": true,
  "isQueueMember": true,
  "expires": "2022-11-23T00:00:00+01:00",
  "expirationPeriodMonths": 12,
  "coApplicant": {
    "numberOfDrafts": 1
  },
  "queues": [
    {
      "id": "residential",
      "displayName": "Bostad",
      "description": "Testar en kötypbeskrivning",
      "joined": "2021-11-02T15:23:42.797+01:00",
      "isMember": true,
      "value": "21",
      "valueUnitDisplayName": "Poäng",
      "active": true
    },
    {
      "id": "parking",
      "displayName": "Fordonsplats",
      "joined": "2021-11-18T10:24:00.85+01:00",
      "isMember": true,
      "value": "5",
      "valueUnitDisplayName": "Poäng",
      "active": true
    },
    {
      "id": "senior",
      "displayName": "Senior",
      "valueUnitDisplayName": "Poäng"
    },
    {
      "id": "youth",
      "displayName": "Ungdom",
      "valueUnitDisplayName": "Poäng"
    }
  ]
}

Name Description
canRegister if the actor can register as an applicant.
isRegistered if the actor can register as an applicant.
isQueueMember If the applicant is a member of a queue.
expires Last date for the user to log in on if the user's applicant status is to be maintained.
expirationPeriodMonths Maximum period between user logins required to maintain the user's applicant status.


.coApplicant

Name Description
numberOfDrafts The number, usually one at a time, of active i.e. unanswered co-applicant requests. The value of numberOfDrafts is 0 if the user has no active co-applicant requests.

.queues

Name Description
id Id of the queue.
displayName Name of the queue.
description Description of the queue.
joined If the applicant has joined the queue then the date when joined.
isMember true if member of the queue.
value The value for an applicant in the queue. Indicates applicant's position in the queue.
valueUnit The unit for the value.
active Indicates that the applicant has an application requiring a response from the applicant e.g. an application where a question of continued interest has been sent to the applicant and an answer is required.



Put a Co-Applicant request

Create a Co-Applicant request for a signed in user. The client is expected to supply a client generated GUID with a http response status code 409 conflict being returned if a co-applicant request with the given GUID already exists.

Request

Example

PUT /v2/market/applicant/coApplicants/{id}


Parameters

Name Description
id Client created Guid to be used to identify the signed in users own relationship to the co-applicant.
applicantIdentifier Official number of the person the signed in user wishes to send a co-applicant request to.


Response

(none)



Get Co-Applicant information

Returns a list of active Co-Applicants and co-applicant requests for a signed in user.

Request

Example

GET /v2/market/applicant/coApplicants

Parameters

Name Description
includeStatusDraft Determines whether or not unanswered i.e. draft co-applicant requests are to be returned in the response.

Response

Example

{
  "count": 1,
  "items": [
    // Example of a co-applicant request that has not yet been replied to from the perspective of the person making the request. Please note that no user data is returned until the receiver has accepted the request.
    {
      "id": "71087a88f2a940c9905ed1d46a5ccd06",
      "viaIdentifier": "19550615-5463",
      "status": {
        "displayName": "Skickad - Ej accepterad"
      }      
    },
    // Example of a co-applicant request that has not yet been replied to from the perspective of the person receiving the request.
   {
      "id": "851e3ad0b6784382b618e4598e3f61e7",
      "name": "Kalle",
      "lastName": "Kund",
      "officialNumber": "19010203-1234",
      "status": {
        "draft": true,
        "displayName": "Mottagen - Ej accepterad"
      }
    },
    // Example of an accepted co-applicant request from the perspective of the person who made the request.
    {
      "id": "71087a88f2a940c9905ed1d46a5ccd06",
      "name": "Sixten",
      "lastName": "Viklund",
      "officialNumber": "19550615-5463",
      "status": {
        "displayName": "Accepterad"
      }
    }
    // Example of an accepted co-applicant request from the perspective of the person who received the request.
    {
      "id": "851e3ad0b6784382b618e4598e3f61e7",
      "name": "Kalle",
      "lastName": "Kund",
      "officialNumber": "19010203-1234",
      "status": {
        "displayName": "Accepterad"
      }
    }
    // Example of an accepted co-applicant request from the perspective of the person who made the request. Please note that the "officialNumber" is null in this example and therefore the co-applicants date of birth is returned instead.
    {
      "id": "jpjdpvG6jTTmjB9tCYpyG9hD",
      "name": "Ella",
      "lastName": "Holmgren",
      "dateOfBirth": "1961-07-17T02:00:00+02:00",
      "status": {
        "displayName": "Accepterad"
      }
    }
  ]
}
Name Description
count The number of co-applicants returned in the items collection.


.items

Name Description
id A guid (string) used to identify the co-applicant relationship.
name The first name of the co-applicant.
lastName The last name of the co-applicant.
officialNumber The co-applicant's official number.
dateOfBirth The co-applicant's date of birth. Please note this field is only returned when the co-applicants official number is null.
viaIdentifier The identifier used as an in-parameter (applicantIdentifier) when the co-applicant request was created via the PUT /v2/market/applicant/coApplicants/{id} endpoint. Please note that the viaIdentifier value is only returned when the the receiver of the co-applicant request has not yet replied to or refused the request.


.items.status

Name Description
draft Boolean value indicating the status of the co-applicant relationship. When true the user has not yet responded to the the co-applicant request and when false the user has responded and the co-applicant relationship is active.
displayName Display name of the co-applicant requst status e.g. "Skickad - Ej accepterad", "Mottagen - Ej accepterad".



Patch a Co-Applicant request

Respond to a Co-Applicant request i.e accept or refuse the request for a signed in user.

Request

Example

PATCH /v2/market/applicant/coApplicants/{id}


Parameters

Name Description
id Co-Applicant request identifier (guid).
accept Boolean value indicating the user's response to the co-applicant request when true = accept and when false = refuse.


Response

(none)



Delete a Co-Applicant relationship

Delete a co-applicant relationship for a signed in user.

Request

Example

DELETE /v2/market/applicant/coApplicants/{id}


Parameters

Name Description
id Co-Applicant relationship identifier (guid).


Response

(none)



Get an applicant profile

Returns a signed in user's applicant profile containing information about the user's source of income, current accommodation and household members. Please note that the example below is based upon the system's standard user profile options obtained via the GET /v2/market/applicant/profile/options endpoint and as these options are configurable it's possible that types of income, accommodation etc. can differ between installations.

Request

Example

GET /v2/market/applicant/profile

Parameters

(none)

Response

Example

{
  "values": {
      "income": {
      "status": {
        "changed": "2022-10-20T14:10:12.246+02:00"
      },
      "generic": {
        "marketIncome": {
          "sources": [
            {
              "id": "0",
              "source": "salary",
              "values": {
                "employer": {
                  "generic": {
                    "text": {
                      "content": "En Arbetsgivare"
                    }
                  }
                },
                "monthlyIncome": {
                  "generic": {
                    "marketIncomeMonthly": {
                      "content": 10000.0
                    }
                  }
                },
                "employeeStartDate": {
                  "generic": {
                    "date": {
                      "content": "2022-10-01T00:00:00+02:00"
                    }
                  }
                },
                "employerContactDetalis": {
                  "generic": {
                    "contactDetails": {
                      "name": "Anders",
                      "emailAddress": "anders@anders.anders",
                      "telephoneNumber": "0000000000"
                    }
                  }
                },
                "employmentCertificate": {
                  "generic": {
                    "file": {
                      "items": [
                        {
                          "id": "employmentCertificate_22",
                          "fileName": "New Test 2 2.jpg",
                          "uploaded": "2022-10-20T07:25:44.02+02:00"
                        },
                        {
                          "id": "employmentCertificate_23",
                          "fileName": "New Test 2 3.jpg",
                          "uploaded": "2022-10-20T07:25:45.046+02:00"
                        }
                      ]
                    }
                  }
                }
              }
            }
          ]
        }
      }
    },
    "accommodation": {
      "status": {
        "changed": "2022-04-21T07:33:43.222+02:00"
      },
      "generic": {
        "marketAccommodation": {
          "type": "rentedAccommodation",
          "values": {
            "landlord": {
              "generic": {
                "text": {
                  "content": "En Hyresvärd"
                }
              }
            },
            "landlordAddress": {
              "generic": {
                "address": {
                  "address": "Hyresvärdsgatan 1",
                  "postcode": "12345",
                  "city": "Stad",
                  "country": "Land"
                }
              }
            },
            "landlordContactDetails": {
              "generic": {
                "contactDetails": {
                  "name": "Hyresvärd",
                  "emailAddress": "hyresvard@hyresvard.hyresvard",
                  "telephoneNumber": "1231221236"
                }
              }
            }
          }
        }
      }
    },
    "household": {
      "status": {
        "changed": "2023-01-11T13:33:26.824+01:00"
      },
      "generic": {
        "marketHousehold": {
          "numberOfChildren": 2,
          "numberOfAdults": 2
        }
      }
    }
  }
}
Name Description
values Dictionary (Dictionary<string, MarketApplicantFieldValue>) containing information about income, current accommodation and household members.


values.income

Name Description
status Information about when the user's income information was last updated.


values.income.status

Name Description
changed The date and time upon which the user's income information was last updated.


values.income.generic.marketIncome

Name Description
sources List (List<MarketIncomeSourceValue>) of the signed in user's income sources.


values.income.generic.marketIncome.sources

Name Description
id The identifier of the user's income source which is unique amongst the user's list of income sources. Please note that the id can be a system generated id such e.g. "5" or an identifier generated by the api consumer e.g. "genererat_id_51".
source The system unique identifier of the income source type.
values A list of values specific to the income source type.


values.accommodation

Name Description
status Information about when the user's accommodation information was last updated.


values.accommodation.status

Name Description
changed The date and time upon which the user's accommodation information was last updated.


values.accommodation.generic.marketAccommodation

Name Description
type The system unique identifier of the accommodation type.
values A list of values specific to the accommodation type.


values.household

Name Description
status Information about when the user's list of household members was last updated.


values.household.status

Name Description
changed The date and time upon which the user's household member information was last updated.


values.household.generic.marketHousehold

Name Description
numberOfChildren The number of children in the household.
numberOfAdults The number of adults in the household.



Patch an applicant profile

Update a signed in user's applicant profile.

Request

Example

PATCH /v2/market/applicant/profile
{
    "generics": {
        "accommodation": {
            "marketAccommodation": {
                "type": "rentedAccommodation"
            }
        },
        "accommodation-landlord": {
            "text": {
                "content": "Momentum"
            }
        },
        "accommodation-landlordAddress": {
            "address": {
                "address": "Testvägen 3",
                "postcode": "79150",
                "city": "Falun",
                "country": "Sverige"
            }
        },
        "accommodation-landlordContactDetails": {
            "contactDetails": {
                "name": "Jan",
                "emailAddress": "test@test.test",
                "telephoneNumber": "070000000"
            }
        },
        "household": {
            "marketHousehold": {
                "numberOfChildren": "2",
                "numberOfAdults": "2"
            }
        },
        {
            "marketIncome": {
                "path": "income",
                "sources": {
                    "cag53ppphjluuakfh1q4ob": {
                        "source": "salary"
                    }
                }
            },
            "path": "income"
        },
        {
            "path": "income-cag53ppphjluuakfh1q4ob-employer",
            "text": {
                "content": {
                    "value": "K & Co"
                }
            }
        },
        {
            "marketIncomeMonthly": {
                "path": "income-cag53ppphjluuakfh1q4ob-monthlyIncome",
                "content": {
                    "value": 10000.0
                }
            },
            "path": "income-cag53ppphjluuakfh1q4ob-monthlyIncome"
        },
        {
            "path": "income-cag53ppphjluuakfh1q4ob-employeeStartDate",
            "date": {
                "content": {
                    "value": "2022-10-01T00:00:00+02:00"
                }
            }
        },
        {
            "path": "income-cag53ppphjluuakfh1q4ob-employerContactDetalis",
            "contactDetails": {
                "name": {
                    "value": "Anders"
                },
                "emailAddress": {
                    "value": "anders@anders.anders"
                },
                "telephoneNumber": {
                    "value": "0000000000"
                }
            }
        },
        {
            "path": "income-cag53ppphjluuakfh1q4ob-employmentCertificate",
            "file": {
                "items": [
                    {
                        "id": {
                            "value": "ybf1c7fhzpq76aj6brkqga"
                        },
                        "content": {
                            "value": "BvBHQmeshSAnREj0PnYInm77W0ptT2o5JoAU77z9Vk7"
                        },
                        "fileName": {
                            "value": "test_file_17.jpg"
                        }
                    },
                    {
                        "id": {
                            "value": "4t9vgiv655399cdpz1ge1j"
                        },
                        "content": {
                            "value": "8VwhfAkDl5Z58NlAYvCGMr52wxd6U1TN1LgYSGhRRn8El"
                        },
                        "fileName": {
                            "value": "test_file_18.jpg"
                        }
                    }
                ]
            }
        },
        "income-752c65346f4c41cca45b99474339cf26-employmentCertificate": 
        {
            "file": {
                "items": [
                    {
                        "id": "7f9c0a21fdcd4ba3bcdc39791a5f41ad",
                        "remove": true
                    }
                ]
            }
        },
        "income": 
        {
            "marketIncome": 
            {
                "sources": 
                {
                    "752c65346f4c41cca45b99474339cf26": 
                    {
                      "remove": true
                    }
                }
            }
        },
        "-": 
        {
            "marketApplicant": 
            {
                "values": 
                {
                    "income": 
                    {
                        "confirm": true
                    }
                }
            }
        }
    }
}


In the example above the following parts of the user's applicant profile are to be updated.

accommodation

The user's accommodation details are updated via the dictionary keys accommodation, accommodation-landlord, accommodation-landlordAddress and accommodation-landlordContactDetails.

household

The user's household members are updated via the dictionary key household. In the example above the household members are updated to two children and two adults.

income

The user's income details are updated via the dictionary key income for instance in the following sections of .json notation taken from the above example the section

        {
            "marketIncome": {
                "path": "income",
                "sources": {
                    "cag53ppphjluuakfh1q4ob": {
                        "source": {
                            "value": "salary"
                        }
                    }
                }
            },
            "path": "income"
        }

adds a new income source of the income source type salary with the dictionary key cag53ppphjluuakfh1q4ob to the list of income sources.

The section

       {
            "path": "income-cag53ppphjluuakfh1q4ob-employer",
            "text": {
                "content": {
                    "value": "K & Co"
                }
            }
        }

sets the display name of the employer to K & Co.

The section

      {
            "marketIncomeMonthly": {
                "path": "income-cag53ppphjluuakfh1q4ob-monthlyIncome",
                "content": {
                    "value": 10000.0
                }
            },
            "path": "income-cag53ppphjluuakfh1q4ob-monthlyIncome"
        }

sets the monthly income to 10000.

The section

        {
            "path": "income-cag53ppphjluuakfh1q4ob-employmentCertificate",
            "file": {
                "items": [
                    {
                        "id": {
                            "value": "ybf1c7fhzpq76aj6brkqga"
                        },
                        "content": {
                            "value": "BvBHQmeshSAnREj0PnYInm77W0ptT2o5JoAU77z9Vk7"
                        },
                        "fileName": {
                            "value": "test_file_17.jpg"
                        }
                    },
                    {
                        "id": {
                            "value": "4t9vgiv655399cdpz1ge1j"
                        },
                        "content": {
                            "value": "8VwhfAkDl5Z58NlAYvCGMr52wxd6U1TN1LgYSGhRRn8El"
                        },
                        "fileName": {
                            "value": "test_file_18.jpg"
                        }                       
                    }
                ]
            }
        }

is used to attach files in the form of an employment certificate consisting of two files to the user's income details using the cag53ppphjluuakfh1q4ob key mentioned above. Files are first uploaded via the POST /v2/system/files endpoint whereupon a temporary file key is returned. In the above .json notation the value BvBHQmeshSAnREj0PnYInm77W0ptT2o5JoAU77z9Vk7 is the key returned by the POST /v2/system/files endpoint and is to be used to refer to the uploaded file when saving them to the user's income details. The value of "id": in the above .json notation is a client provided unique identifier used to identify the file within the collection of files that make up the employment certificate.

The section

   "income-752c65346f4c41cca45b99474339cf26-employmentCertificate": {
                "file": {
                    "items": [
                        {
                            "id": "7f9c0a21fdcd4ba3bcdc39791a5f41ad",
                            "remove": true
                        }
                    ]
                }
            }

updates an income source with the key 752c65346f4c41cca45b99474339cf26 by removing the file with the key 7f9c0a21fdcd4ba3bcdc39791a5f41ad.

The section

  "income": 
          {
              "marketIncome": 
              {
                  "sources": 
                  {
                      "752c65346f4c41cca45b99474339cf26": 
                      {
                        "remove": true
                      }
                  }
              }
          }

removes the income source with the key 752c65346f4c41cca45b99474339cf26 from the list of income sources.

The section

  "-": 
      {
          "marketApplicant": 
          {
              "values": 
              {
                  "income": 
                  {
                      "confirm": true
                  }
              }
          }
      }

Is used to signal that the logged in user has confirmed that their user profile is up to date prior to being checked for example as part of a property rental process. For instance in the example above the user is confirming that their income details are up to date.

Please note the full list of profile options for the the system's standard user profile can be obtained via the GET /v2/market/applicant/profile/options endpoint.


Parameters

Name Description
generics Dictionary (Dictionary<string, MarketApplicantFieldValue>) containing the parts of the user profile to be updated.


Response

(none)



Post an applicant file

Upload a file to be used as part of an applicant profile e.g. when using the PATCH /v2/market/applicant/profile endpoint, upon completion of the upload a temporary file key is returned.

Request

Example

POST /v2/system/files

Parameters

(none)

Please not that whilst the POST /v2/system/files endpoint does not require parameters in the normal sense it is intended that the caller provides an HttpFile.InputStream from which the file can be read.

Response

Example

uJ7uPlRGuqx1xug6jPF7NsxWM3qEoSCUbgKtiveJ9egYmw



Get Applicant profile options

Returns applicant profile options. Please note that the example below is based upon the system's standard user profile options and as these options are configurable it's possible that types of income, accommodation etc. can differ between installations.

Request

Example

GET /v2/market/applicant/profile/options

Parameters

(none)

Response

Example

{
  "fields": [
    {
      "id": "income",
      "generic": {
        "type": "marketIncome",
        "marketIncome": {
          "heading": "Inkomst",
          "sources": [
            {
              "id": "salary",
              "displayName": "Lön",
              "fields": [
                {
                  "id": "employer",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Arbetsgivare",
                      "description": "Ange din arbetsgivare",
                      "maxLength": 256
                    }
                  }
                },
                {
                  "id": "monthlyIncome",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Summa per månad",
                      "description": "Ange din månadsinkomst"
                    }
                  }
                },
                {
                  "id": "employeeStartDate",
                  "generic": {
                    "type": "date",
                    "date": {
                      "label": "Anställd fr.o.m",
                      "description": "Ange det datumet du påbörjade din anställning"
                    }
                  }
                },
                {
                  "id": "employerContactDetalis",
                  "generic": {
                    "type": "contactDetails",
                    "contactDetails": {
                      "heading": "Arbetsgivarens kontaktuppgifter",
                      "description": "Ange kontaktdetaljer för din arbetsgivare",
                      "required": true
                    }
                  }
                },
                {
                  "id": "employmentCertificate",
                  "generic": {
                    "type": "file",
                    "file": {
                      "label": "Arbetsgivarintyg",
                      "description": "Ladda upp ett arbetsgivarintyg för att kunna bekräfta din anställning och ditt lön",
                      "expiresAfterDays": 180
                    }
                  }
                }
              ]
            },
            {
              "id": "pension",
              "displayName": "Pension",
              "fields": [
                {
                  "id": "pensionIncome",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Summa per månad",
                      "description": "Ange din månadsinkomst från pension"
                    }
                  }
                }
              ]
            },
            {
              "id": "incomeSupport",
              "displayName": "Försörjningsstöd",
              "fields": [
                {
                  "id": "localAuthority",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Kommun",
                      "description": "Ange den kommun som ansvarar för handläggningen av ditt försörjningsstöd",
                      "maxLength": 256
                    }
                  }
                },
                {
                  "id": "incomeSupportAmount",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Summa per månad",
                      "description": "Ange summan av ditt försörjningsstöd"
                    }
                  }
                }
              ]
            },
            {
              "id": "introductionBenefit",
              "displayName": "Etableringsersättning",
              "fields": [
                {
                  "id": "introductionBenefitAmount",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Summa per månad",
                      "description": "Ange summan av din etableringsersättning"
                    }
                  }
                },
                {
                  "id": "benefitStartDatum",
                  "generic": {
                    "type": "date",
                    "date": {
                      "label": "Ersättning fr.o.m",
                      "description": "Ange det datum du började ta emot etableringsersättning"
                    }
                  }
                }
              ]
            },
            {
              "id": "unemploymentBenefit",
              "displayName": "A-kassa",
              "fields": [
                {
                  "id": "unemploymentBenefitAmount",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Summa per månad",
                      "description": "Ange summan av din a-kassa ersättning"
                    }
                  }
                },
                {
                  "id": "unemploymentBenefitStartDate",
                  "generic": {
                    "type": "date",
                    "date": {
                      "label": "Ersättning fr.o.m",
                      "description": "Ange det datum du började ta emot a-kassa ersättning"
                    }
                  }
                }
              ]
            },
            {
              "id": "childBenefit",
              "displayName": "Barnbidrag",
              "fields": [
                {
                  "id": "childBenefitAmount",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Summa per månad",
                      "description": "Ange summan av ditt barnbidrag"
                    }
                  }
                }
              ]
            },
            {
              "id": "sicknessBenefit",
              "displayName": "Sjukpenning",
              "fields": [
                {
                  "id": "sicknessBenefitAmount",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Summa per månad",
                      "description": "Ange summan av din sjukpenning"
                    }
                  }
                }
              ]
            },
            {
              "id": "housingBenefit",
              "displayName": "Bostadsbidrag och Bostadstillägg",
              "fields": [
                {
                  "id": "housingBenefitAmount",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Summa per månad",
                      "description": "Ange summan av ditt bostadsbidrag och bostadstillägg"
                    }
                  }
                }
              ]
            },
            {
              "id": "studentLoan",
              "displayName": "Studielån",
              "fields": [
                {
                  "id": "studentLoanAmount",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Summa per månad",
                      "description": "Ange din månadsinkomst från studielån"
                    }
                  }
                },
                {
                  "id": "educationalInstitution",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Skola",
                      "description": "Ange din skola",
                      "maxLength": 256
                    }
                  }
                },
                {
                  "id": "course",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Utbildning",
                      "description": "Ange din utbildning",
                      "maxLength": 256
                    }
                  }
                },
                {
                  "id": "modeOfStudy",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Studiernas omfattning",
                      "description": "Ange om du studerar heltid, deltid osv. t.ex. 50%, 75% eller 100%",
                      "maxLength": 64
                    }
                  }
                },
                {
                  "id": "studyStartDate",
                  "generic": {
                    "type": "date",
                    "date": {
                      "label": "Studera fr.o.m",
                      "description": "Ange datumet du påbörjar/påbörjade dina studier"
                    }
                  }
                }
              ]
            },
            {
              "id": "selfEmployed",
              "displayName": "Egenföretagare",
              "fields": [
                {
                  "id": "companyName",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Företagsnamn",
                      "description": "Ange företagsnamn",
                      "maxLength": 256
                    }
                  }
                },
                {
                  "id": "companyRegistrationNumber",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Organisationsnummer",
                      "description": "Ange organisationsnummer för ditt företag",
                      "maxLength": 32
                    }
                  }
                },
                {
                  "id": "selfEmployedTelephoneNumber",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Telefonnummer",
                      "description": "Ange ditt företags telefonnummer",
                      "maxLength": 24
                    }
                  }
                },
                {
                  "id": "businessEntityType",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Bolagsform",
                      "description": "Ange bolagsform t.ex enskild firma eller aktiebolag",
                      "maxLength": 128
                    }
                  }
                }
              ]
            },
            {
              "id": "privateIncome",
              "displayName": "Eget kapital",
              "fields": [
                {
                  "id": "privateIncomeAmount",
                  "generic": {
                    "type": "marketIncomeMonthly",
                    "marketIncomeMonthly": {
                      "label": "Totalsumma",
                      "description": "Ange den beräknade månadsinkomsten du förväntar dig från ditt eget kapital"
                    }
                  }
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "accommodation",
      "generic": {
        "type": "marketAccommodation",
        "marketAccommodation": {
          "heading": "Boende",
          "types": [
            {
              "id": "rentedAccommodation",
              "displayName": "Hyresrätt",
              "fields": [
                {
                  "id": "landlord",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Hyresvärd",
                      "description": "Ange namnet på din hyresvärd",
                      "maxLength": 256
                    }
                  }
                },
                {
                  "id": "landlordAddress",
                  "generic": {
                    "type": "address",
                    "address": {
                      "label": "Hyresvärd adress",
                      "description": "Ange adress för din hyresvärd"
                    }
                  }
                },
                {
                  "id": "landlordContactDetails",
                  "generic": {
                    "type": "contactDetails",
                    "contactDetails": {
                      "heading": "Hyresvärd kontaktuppgifter",
                      "description": "Ange kontaktdetaljerna för din hyresvärd"
                    }
                  }
                }
              ]
            },
            {
              "id": "freehold",
              "displayName": "Bostadsrätt",
              "fields": [
                {
                  "id": "boardContactDetails",
                  "generic": {
                    "type": "contactDetails",
                    "contactDetails": {
                      "heading": "Styrelse kontaktuppgifter",
                      "description": "Ange kontaktdetaljerna för bostadsrättsföreningens styrelse"
                    }
                  }
                }
              ]
            },
            {
              "id": "ownHome",
              "displayName": "Egnahem",
              "fields": [
                {
                  "id": "landRegistryPropertyTitle",
                  "generic": {
                    "type": "text",
                    "text": {
                      "label": "Fastighetsbeteckning",
                      "description": "Ange fastighetsbeteckning för din fastighet",
                      "maxLength": 32
                    }
                  }
                }
              ]
            },
            {
              "id": "otherAccommodation",
              "displayName": "Annat boende",
              "fields": [
                {
                  "id": "otherAccommodationAddress",
                  "generic": {
                    "type": "address",
                    "address": {
                      "label": "Adress",
                      "description": "Ange adress för ditt boende"
                    }
                  }
                },
                {
                  "id": "referencePersonContactDetails",
                  "generic": {
                    "type": "contactDetails",
                    "contactDetails": {
                      "heading": "Referensperson kontaktuppgifter",
                      "description": "Ange kontaktdetaljerna för ditt boendes referensperson"
                    }
                  }
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "household",
      "generic": {
        "type": "marketHousehold",
        "marketHousehold": {
          "heading": "Hushåll",
          "description": "Ange medlemmar i ditt hushåll"
        }
      }
    }
  ]
}