---
title: "Report the outcome of a property purchase"
method: POST
path: "/lifetime-isa/manager/{lisaManagerReferenceNumber}/accounts/{accountId}/events/purchase-outcomes"
tags: ["Life Events"]
---

# Report the outcome of a property purchase

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

Report to HMRC if a property purchase was completed or failed.

### Test data

<table style="font-family:Roboto, sans-serif; font-size:14px;">
  <colgroup>
    <col width="20%" />
    <col width="40%" />
    <col width="40%" />
  </colgroup>
  <thead>
    <tr>
      <th>Scenario</th>
      <th>Request Payload</th>
      <th>Response</th>
    </tr>
    <tr>
      <td>
        <p>Successful purchase outcome</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />1234567890 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-10-10",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000
}             
</pre>
      </td>
      <td>
        <p>HTTP status: <code class="code--slim">201 (Created)</code></p>
        <pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Purchase outcome created",
    "lifeEventId": "5678900001"
  }
}               
</pre>
      </td>
    </tr>
    <tr>
      <td>
        <p>Purchase outcome superseded</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />1234567890 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "eventDate": "2017-10-05",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000,
  "supersede": {
    "originalLifeEventId": "5678900001",
    "originalEventDate": "2017-10-10"
  }
}                
</pre>
      </td>
      <td>
        <p>HTTP status: <code class="code--slim">201 (Created)</code></p>
        <pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Purchase outcome superseded",
    "lifeEventId": "5678900002"
  }
}        
</pre>
      </td>
    </tr>
    <tr>
      <td>
        <p>Failed purchase outcome</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />1234567891 </p>
      </td>
      <td>
<pre class="code--block">
{
  "fundReleaseId": "3456789002",
  "eventDate": "2017-10-10",
  "propertyPurchaseResult": "Purchase failed"
}
</pre>
      </td>
      <td>
        <p>HTTP status: <code class="code--slim">201 (Created)</code></p>
<pre class="code--block">
{
  "status": 201,
  "success": true,
  "data": {
    "message": "Purchase outcome created",
    "lifeEventId": "5678900003"
  }
}
</pre>
      </td>
    </tr>
    <tr>
      <td>
        <p>Invalid LISA Manager Reference Number</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> 123456 <br /> <br /> <strong>accountId:</strong><br />1234567890 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-10-10",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000
}       
</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>Invalid Account ID</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />1234%3D5678 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-10-10",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000
}                                   
</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>Supersede details do not match the original request</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />5000000403 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "eventDate": "2017-10-05",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000,
  "supersede": {
    "originalLifeEventId": "5678900000",
    "originalEventDate": "2017-10-10"
  }
}    
</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>Fund release not found</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />1000000404 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-10-10",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000
}                                    
</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>Investor account not found</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />0000000404 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-10-10",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000
}  
</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>The purchase outcome you are superseding has already been superseded</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />1000000409 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "eventDate": "2017-10-05",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000,
  "supersede": {
    "originalLifeEventId": "5678900001",
    "originalEventDate": "2017-10-10"
  }
}       
</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": "5678900002"
}                        
</pre>
      </td>
    </tr>
    <tr>
      <td>
        <p>Purchase outcome already exists</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />0000000409 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "fundReleaseId": "3456789001",
  "eventDate": "2017-10-10",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000
}                                                     
</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": "5678900001"
}                                               
</pre>
      </td>
    </tr>
    <tr>
      <td>
        <p>The associated fund release has been superseded</p>
        <p class="code--block"> <strong>lisaManagerReferenceNumber:</strong><br /> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br /> <br /> <strong>accountId:</strong><br />2000000409 </p>
      </td>
      <td>
        <pre class="code--block">
{
  "fundReleaseId": "3456789000",
  "eventDate": "2017-10-05",
  "propertyPurchaseResult": "Purchase completed",
  "propertyPurchaseValue": 250000
}
</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>
  </thead>
</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 purchase outcome.
  - `eventDate` string, required — The date the outcome of the property purchase was known. This cannot be in the future.
  - `propertyPurchaseResult` 'Purchase failed' | 'Purchase completed', required — Whether a property purchase was completed or failed.
  - `propertyPurchaseValue` number — The value of the property that the investor purchased. Only include this information if the purchase was completed. You can include an amount up to 2 decimal places.
  - `supersede` object — Correct an existing purchase outcome.
    - `originalLifeEventId` string, required — The ID of the purchase outcome affected by the correction.
    - `originalEventDate` string, required — The eventDate of the purchase outcome 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` 'Purchase outcome created' | 'Purchase outcome superseded', required — A human-readable explanation for the result of the API call.
    - `lifeEventId` string, required — The purchase outcome’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)
