---
title: "Create or transfer a LISA account"
method: POST
path: "/lifetime-isa/manager/{lisaManagerReferenceNumber}/accounts"
tags: ["LISA Accounts"]
---

# Create or transfer a LISA account

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

Create a new account you’ve set up for an investor, or transfer an existing account from another LISA provider. If you’re creating a new account you’ll need to create a LISA investor first.

### Test data

<table style="font-family:Roboto, sans-serif; font-size:14px;">
    <col width="25%">
    <col width="40%">
    <col width="35%">
    <thead>
        <tr>
            <th>Scenario</th>
            <th>Request Payload</th>
            <th>Response</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><p>Create 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">
{
  "investorId": "9876543210",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Account created",
    "accountId": "1234567890"
  }
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Transfer 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">
{
  "investorId": "9876543210",
  "creationReason": "Transferred",
  "accountId": "1234567891",
  "firstSubscriptionDate": "2017-04-06",
  "transferAccount": {
    "transferredFromAccountId": "8765432100",
    "transferredFromLMRN": "Z654321",
    "transferInDate": "2017-04-06"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Account transferred",
    "accountId": "1234567891"
  }
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Transfer current year 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">
{
  "investorId": "9876543210",
  "creationReason": "Current year funds transferred",
  "accountId": "1234567892",
  "firstSubscriptionDate": "2017-04-06",
  "transferAccount": {
    "transferredFromAccountId": "8765432100",
    "transferredFromLMRN": "Z654321",
    "transferInDate": "2017-04-06"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Account transferred",
    "accountId": "1234567892"
  }
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Transfer previous year 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">
{
  "investorId": "9876543210",
  "creationReason": "Previous year funds transferred",
  "accountId": "1234567893",
  "firstSubscriptionDate": "2017-04-06",
  "transferAccount": {
    "transferredFromAccountId": "8765432100",
    "transferredFromLMRN": "Z654321",
    "transferInDate": "2017-04-06"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Account transferred",
    "accountId": "1234567893"
  }
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request with a valid payload and an invalid LISA Manager reference number</p><p class ="code--block">lisaManagerReferenceNumber: A123456</p></td>
            <td>
<pre class="code--block">
{
  "investorId": "9876543210",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</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">
{
  "investorId": "9876543",
  "creationReason": "New",
  "firstSubscriptionDate": "2011"
}
</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": "INVALID_DATE",
      "message": "Date is invalid",
      "path": "/firstSubscriptionDate"
    },
    {
      "code": "INVALID_FORMAT",
      "message": "Invalid format has been used",
      "path": "/investorId"
    },
    {
      "code": "MISSING_FIELD",
      "message": "This field is required",
      "path": "/accountId"
    }
  ]
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request containing dates before 6 April 2017</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">
{
  "investorId": "9876543210",
  "creationReason": "Transferred",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2016-04-06",
  "transferAccount": {
    "transferredFromAccountId": "8765432100",
    "transferredFromLMRN": "Z654321",
    "transferInDate": "2016-04-06"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "FORBIDDEN",
  "message": "There is a problem with the request data",
  "errors": [
    {
      "code": "INVALID_DATE",
      "message": "The firstSubscriptionDate cannot be before 6 April 2017",
      "path": "/firstSubscriptionDate"
    },
    {
      "code": "INVALID_DATE",
      "message": "The transferInDate cannot be before 6 April 2017",
      "path": "/transferAccount/transferInDate"
    }
  ]
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request containing investor details which cannot be found</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">
{
  "investorId": "1234567890",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</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 containing an investor who is not eligible for a LISA account</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">
{
  "investorId": "1234567891",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "INVESTOR_ELIGIBILITY_CHECK_FAILED",
  "message": "The investor is not eligible for a LISA account"
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request containing an investor who has not passed the compliance check</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">
{
  "investorId": "1234567892",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "INVESTOR_COMPLIANCE_CHECK_FAILED",
  "message": "You cannot create or transfer a LISA account because the investor has failed a compliance check"
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Transfer request containing transfer details which cannot be found in 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">
{
  "investorId": "1234567889",
  "creationReason": "Transferred",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06",
  "transferAccount": {
    "transferredFromAccountId": "8765432100",
    "transferredFromLMRN": "Z654321",
    "transferInDate": "2017-04-06"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "PREVIOUS_INVESTOR_ACCOUNT_DOES_NOT_EXIST",
  "message": "The transferredFromAccountId and transferredFromLMRN given do not match an account on HMRC’s records"
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Transfer request without transfer 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">
{
  "investorId": "9876543210",
  "creationReason": "Transferred",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "TRANSFER_ACCOUNT_DATA_NOT_PROVIDED",
  "message": "You must give a transferredFromAccountId, transferredFromLMRN and transferInDate when the creationReason is transferred, current or previous year funds transferred"
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Create request containing transfer 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">
{
  "investorId": "9876543210",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06",
  "transferAccount": {
    "transferredFromAccountId": "8765432100",
    "transferredFromLMRN": "Z654321",
    "transferInDate": "2017-04-06"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "TRANSFER_ACCOUNT_DATA_PROVIDED",
  "message": "You must only give a transferredFromAccountId, transferredFromLMRN, and transferInDate when the creationReason is transferred, current or previous year funds transferred"
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request containing a LISA account which has already been closed</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">
{
  "investorId": "0000000403",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "INVESTOR_ACCOUNT_ALREADY_CLOSED",
  "message": "The LISA account is already closed"
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request containing a LISA account which has already been cancelled</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">
{
  "investorId": "2000000403",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "INVESTOR_ACCOUNT_ALREADY_CANCELLED",
  "message": "The LISA account is already cancelled"
}
</pre>
            </td>
        </tr>
        <tr>
            <td><p>Request containing a LISA account which has already been voided</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">
{
  "investorId": "1000000403",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "INVESTOR_ACCOUNT_ALREADY_VOID",
  "message": "The LISA account is already void"
}
</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">
{
  "investorId": "9876543210",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</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 for a pre-existing account</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">
{
  "investorId": "1234567899",
  "creationReason": "New",
  "accountId": "1234567890",
  "firstSubscriptionDate": "2017-04-06"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">409 (Conflict)</code></p>
<pre class="code--block">
{
  "code": "INVESTOR_ACCOUNT_ALREADY_EXISTS",
  "message": "This investor already has a LISA account",
  "accountId": "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
  - `investorId` string, required — The investor’s ID reference number.
  - `accountId` string, required — The provider’s own unique reference number for the investor’s LISA account.
  - `creationReason` 'New' | 'Transferred' | 'Current year funds transferred' | 'Previous year funds transferred', required — The reason the account was created.
  - `firstSubscriptionDate` string, required — The date of the first deposit into the account - if this is a transfer, use the date of deposit into the account managed by the previous provider. This cannot be in the future.
  - `transferAccount` object — If the creationReason is ‘Transferred’, 'Current year funds transferred', or 'Previous year funds transferred', then this is required.
    - `transferredFromAccountId` string, required — The previous provider's own unique reference number for the investor's LISA account.
    - `transferredFromLMRN` string, required — The reference given to the LISA provider when they applied for approval from HMRC.
    - `transferInDate` string, required — The date the account transferred from the previous provider to the new one. 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` 'Account created' | 'Account transferred', required — A human-readable explanation for the result of the API call.
    - `accountId` string, required — The provider’s own unique reference number for the investor’s LISA account.

## 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)
