v1

latestOpenAPI 3.0.32026-07-131990818.5 KB
Life Events

Request a property purchase extension

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>
post/lifetime-isa/manager/{lisaManagerReferenceNumber}/accounts/{accountId}/events/purchase-extensions

Path parameters

lisaManagerReferenceNumberstring required
Example:Z1234

The reference given to the LISA provider when they applied for approval from HMRC.

accountIdstring required
Example:ABC12345

The ID for the account. This will be generated by the LISA Manager and will only be unique when used in combination with lisaManagerReferenceNumber. Any special characters should be URL encoded.

Headers

Accept'application/vnd.hmrc.2.0+json' required

Specifies the response format and the version of the API to be used.

Content-Type'application/json' required

Specifies the format of the request body, which must be JSON.

Authorizationstring required
Example:Bearer bb7fed3fe10dd235a2ccda3d50fb

An OAuth 2.0 Bearer Token with appropriate scope.

Request body

fundReleaseIdstring

The reference number you get when you report a fund release. Must not be provided when correcting an existing extension.

eventDatestring required

The date the extension is requested. This cannot be in the future.

eventType'Extension one' | 'Extension two' required

The type of extension.

Example request

{
  "fundReleaseId": "3456789000",
  "eventDate": "2017-05-10",
  "supersede": {
    "originalLifeEventId": "6789000001",
    "originalEventDate": "2017-05-11"
  }
}

Response

Created

statusnumber required

The HTTP status of the result of the API call. Always 201.

successboolean required

Whether the API call was successful or not. Always true.