---
title: "Create a LISA investor"
method: POST
path: "/lifetime-isa/manager/{lisaManagerReferenceNumber}/investors"
tags: ["LISA Investors"]
---

# Create a LISA investor

`POST /lifetime-isa/manager/{lisaManagerReferenceNumber}/investors`

Report a new LISA investor to HMRC to generate an investor ID. If the investor already exists, you will get their reference number.

### Test data

<table style="font-family:Roboto, sans-serif; font-size:14px;">
    <col width="25%">
    <col width="35%">
    <col width="40%">
    <thead>
        <tr>
            <th>Scenario</th>
            <th>Request Payload</th>
            <th>Response</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><p>Request with a valid payload and LISA Manager reference number</p> <p class="code--block">lisaManagerReferenceNumber: <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a></p></td>
            <td>
<pre class="code--block">
{
  "investorNINO": "AA123456A",
  "firstName": "First Name",
  "lastName": "Last Name",
  "dateOfBirth": "1985-03-25"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Investor created",
    "investorId": "9876543210"
  }
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request with a valid payload and an invalid LISA Manager reference number</p> <p class="code--block">lisaManagerReferenceNumber: 123456</p></td>
            <td>
<pre class="code--block">
{
  "investorNINO": "AA123456A",
  "firstName": "First Name",
  "lastName": "Last Name",
  "dateOfBirth": "1985-03-25"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">400 (Bad Request)</code></p>
<pre class="code--block">
{
  "code": "BAD_REQUEST",
  "message": "Enter lisaManagerReferenceNumber in the correct format, like Z1234"
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request containing invalid and/or missing data</p><p class="code--block">lisaManagerReferenceNumber: <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a></p></td>
            <td>
<pre class="code--block">
{
  "investorNINO": "A1234567A",
  "firstName": true,
  "dateOfBirth": "25-03-1985"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">400 (Bad Request)</code></p>
<pre class="code--block">
{
  "code": "BAD_REQUEST",
  "message": "Bad Request",
  "errors": [
    {
      "code": "MISSING_FIELD",
      "message": "This field is required",
      "path": "/lastName"
    },
    {
      "code": "INVALID_DATE",
      "message": "Date is invalid",
      "path": "/dateOfBirth"
    },
    {
      "code": "INVALID_FORMAT",
      "message": "Invalid format has been used",
      "path": "/investorNINO"
    },
    {
      "code": "INVALID_DATA_TYPE",
      "message": "Invalid data type has been used",
      "path": "/firstName"
    }
  ]
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request containing investor details which do not match HMRC’s records</p><p class="code--block">lisaManagerReferenceNumber: <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a></p></td>
            <td>
<pre class="code--block">
{
  "investorNINO": "AA111111A",
  "firstName": "First Name",
  "lastName": "Last Name",
  "dateOfBirth": "1985-03-25"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "INVESTOR_NOT_FOUND",
  "message": "The investor details given do not match with HMRC’s records"
}
</pre>
             </td>
        </tr>
        <tr>
           <td><p>Request with an invalid 'Accept' header</p><p class="code--block">lisaManagerReferenceNumber: <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br><br>Accept: application/vnd.hmrc.1.0</p></td>
           <td>
<pre class="code--block">
{
  "investorNINO": "AA123456A",
  "firstName": "First Name",
  "lastName": "Last Name",
  "dateOfBirth": "1985-03-25"
}
</pre>
           </td>
           <td><p>HTTP status: <code class="code--slim">404 (Not Found)</code></p>
<pre class="code--block">
{
  "code": "MATCHING_RESOURCE_NOT_FOUND",
  "message": "A resource with the name in the request can not be found in the API"
}
</pre>
           </td>
        </tr>
        <tr>
            <td><p>Request containing a pre-existing investor’s details</p> <p class="code--block">lisaManagerReferenceNumber: <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a></p></td>
            <td>
<pre class="code--block">
{
  "investorNINO": "AA222222A",
  "firstName": "First Name",
  "lastName": "Last Name",
  "dateOfBirth": "1985-03-25"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">409 (Conflict)</code></p>
<pre class="code--block">
{
  "code": "INVESTOR_ALREADY_EXISTS",
  "message": "The investor already has a record with HMRC",
  "id": "1234567890"
}
</pre>
            </td>
        </tr>
    </tbody>
</table>

## Path parameters

- `lisaManagerReferenceNumber` string, required

## Headers

- `Accept` 'application/vnd.hmrc.2.0+json', required
- `Content-Type` 'application/json', required
- `Authorization` string, required

## Request body

- object
  - `investorNINO` string, required — The investor’s National Insurance number.
  - `firstName` string, required — The investor’s first name.
  - `lastName` string, required — The investor’s last name.
  - `dateOfBirth` string, required — The investor’s date of birth. This cannot be in the future.

## Response `201`

Created

- object
  - `status` number, required — The HTTP status of the result of the API call. Always 201.
  - `success` boolean, required — Whether the API call was successful or not. Always true.
  - `data` object, required — Response details.
    - `message` 'Investor created', required — A human-readable explanation for the result of the API call.
    - `investorId` string, required — The investor’s ID reference number. You must store this ID as it is needed for other API calls.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `409` — Conflict

---

[API](https://skmtc.net/hmrc/apis/lisa-api.md) · [All operations](https://skmtc.net/hmrc/apis/lisa-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hmrc/lisa-api/revisions/689ca71752fb/schema)
