---
title: "Request a property purchase extension"
method: POST
path: "/lifetime-isa/manager/{lisaManagerReferenceNumber}/accounts/{accountId}/events/purchase-extensions"
tags: ["Life Events"]
---

# Request a property purchase extension

`POST /lifetime-isa/manager/{lisaManagerReferenceNumber}/accounts/{accountId}/events/purchase-extensions`

Request an extension to your request to release funds to buy a property.

### 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>First purchase extension</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>
                    accountId: 1234567890
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-05-10",
  "eventType": "Extension one"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Extension created",
    "lifeEventId": "6789000001"
  }
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>Superseded first purchase extension</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>
                    accountId: 1234567890
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "eventDate": "2017-05-11",
  "eventType": "Extension one",
  "supersede": {
    "originalEventDate": "2017-05-10",
    "originalLifeEventId": "6789000001"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Extension superseded",
    "lifeEventId": "6789000002"
  }
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>Second purchase extension</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>
                    accountId: 1234567890
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-08-10",
  "eventType": "Extension two"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Extension created",
    "lifeEventId": "6789000003"
  }
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>Superseded second purchase extension</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>
                    accountId: 1234567890
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "eventDate": "2017-08-11",
  "eventType": "Extension two",
  "supersede": {
    "originalEventDate": "2017-08-10",
    "originalLifeEventId": "6789000003"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Extension superseded",
    "lifeEventId": "6789000004"
  }
}
</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
                    <br>
                    accountId: 1234567890
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-05-10",
  "eventType": "Extension one"
}
</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 with a valid payload and an invalid account ID</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>
                    accountId: 1234%3D5678
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-05-10",
  "eventType": "Extension one"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">400 (Bad Request)</code></p>
<pre class="code--block">
{
  "code": "BAD_REQUEST",
  "message": "Enter accountId in the correct format, like ABC12345"
}
</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>
                    <br>
                    accountId: 1234567890
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "eventDate": "10-05-2017",
  "eventType": "Extension 1"
}
</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": "/eventDate"
    },
    {
      "code": "INVALID_FORMAT",
      "message": "Invalid format has been used",
      "path": "/eventType"
    },
    {
      "code": "MISSING_FIELD",
      "message": "This field is required",
      "path": "/fundReleaseId"
    }
  ]
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>The LISA account is already 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>
                    <br>
                    accountId: 1000000403
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-08-10",
  "eventType": "Extension one"
}
</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>The LISA account is already 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>
                    <br>
                    accountId: 2000000403
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-08-10",
  "eventType": "Extension one"
}
</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>The LISA account is already void</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>
                    accountId: 3000000403
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-08-10",
  "eventType": "Extension one"
}
</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>A first extension has not yet been approved</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>
                    accountId: 7000000403
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-08-10",
  "eventType": "Extension one"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "FIRST_EXTENSION_NOT_APPROVED",
  "message": "A first extension has not yet been approved"
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>First extension already approved</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>
                    accountId: 8000000403
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-05-10",
  "eventType": "Extension one"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "FIRST_EXTENSION_ALREADY_APPROVED",
  "message": "A first extension has already been approved",
  "lifeEventId": "6789000001"
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>Second extension already approved</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>
                    accountId: 9000000403
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-08-10",
  "eventType": "Extension two"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "SECOND_EXTENSION_ALREADY_APPROVED",
  "message": "A second extension has already been approved",
  "lifeEventId": "6789000003"
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>Supersede details do not match the original request</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>
                    accountId: 5000000403
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "eventDate": "2017-05-11",
  "eventType": "Extension one",
  "supersede": {
    "originalEventDate": "2017-05-10",
    "originalLifeEventId": "6789000001"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">403 (Forbidden)</code></p>
<pre class="code--block">
{
  "code": "SUPERSEDED_LIFE_EVENT_MISMATCH_ERROR",
  "message": "originalLifeEventId and the originalEventDate do not match the information in the original request"
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>Account not 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>
                    <br>
                    accountId: 0000000404
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-05-10",
  "eventType": "Extension one"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">404 (Not Found)</code></p>
<pre class="code--block">
{
  "code": "INVESTOR_ACCOUNTID_NOT_FOUND",
  "message": "Enter a real accountId"
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>Fund release not 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>
                    <br>
                    accountId: 1000000404
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-05-10",
  "eventType": "Extension one"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">404 (Not Found)</code></p>
<pre class="code--block">
{
  "code": "FUND_RELEASE_NOT_FOUND",
  "message": "The fundReleaseId does not match HMRC’s records"
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>Extension already exists</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>
                    accountId: 0000000409
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-05-10",
  "eventType": "Extension one"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">409 (Conflict)</code></p>
<pre class="code--block">
{
  "code": "LIFE_EVENT_ALREADY_EXISTS",
  "message": "The investor’s life event has already been reported",
  "lifeEventId": "6789000001"
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>The associated fund release has been superseded</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>
                    accountId: 2000000409
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789000",
  "eventDate": "2017-05-10",
  "eventType": "Extension one"
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">409 (Conflict)</code></p>
<pre class="code--block">
{
  "code": "FUND_RELEASE_SUPERSEDED",
  "message": "This fund release has already been superseded",
  "lifeEventId": "3456789001"
}
</pre>
            </td>
        </tr>
        <tr>
            <td>
                <p>The extension you are superseding has already been superseded</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>
                    accountId: 1000000409
                </p>
            </td>
            <td>
<pre class="code--block">
{
  "eventDate": "2017-05-11",
  "eventType": "Extension one",
  "supersede": {
    "originalEventDate": "2017-05-10",
    "originalLifeEventId": "6789000001"
  }
}
</pre>
            </td>
            <td><p>HTTP status: <code class="code--slim">409 (Conflict)</code></p>
<pre class="code--block">
{
  "code": "SUPERSEDED_LIFE_EVENT_ALREADY_SUPERSEDED",
  "message": "This life event has already been superseded",
  "lifeEventId": "6789000002"
}
</pre>
            </td>
        </tr>
    </tbody>
</table>

## Path parameters

- `lisaManagerReferenceNumber` string, required
- `accountId` string, required

## Headers

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

## Request body

- object
  - `fundReleaseId` string — The reference number you get when you report a fund release. Must not be provided when correcting an existing extension.
  - `eventDate` string, required — The date the extension is requested. This cannot be in the future.
  - `eventType` 'Extension one' | 'Extension two', required — The type of extension.
  - `supersede` object — Correct an existing extension.
    - `originalLifeEventId` string, required — The ID of the extension affected by the correction.
    - `originalEventDate` string, required — The eventDate of the extension affected by the correction.

## 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` 'Extension created' | 'Extension superseded', required — A human-readable explanation for the result of the API call.
    - `lifeEventId` string, required — The extension’s ID reference number. You must store this ID as it is needed for other API calls.

## Other responses

- `403` — Forbidden
- `404` — Not Found
- `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)
