---
title: "Get details of a bonus request"
method: GET
path: "/lifetime-isa/manager/{lisaManagerReferenceNumber}/accounts/{accountId}/transactions/{transactionId}"
tags: ["Bonus Requests"]
---

# Get details of a bonus request

`GET /lifetime-isa/manager/{lisaManagerReferenceNumber}/accounts/{accountId}/transactions/{transactionId}`

Use an investor’s transaction ID to get a request for a bonus payment that has been submitted to HMRC.

### Test data

<table style="font-family:Roboto, sans-serif; font-size:14px;">
<colgroup>
<col width="40%">
<col width="60%">
</colgroup>
<thead>
<tr>
<th>Scenario</th>
<th>Response</th>
</tr>
</thead>
<tbody>
    <tr>
    <td>
    <p>Retrieve details for a bonus payment associated with a LISA account</p>
    <p class ="code--block">
    <strong>lisaManagerReferenceNumber:</strong> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br>
    <strong>accountId:</strong> 1234567890<br>
    <strong>transactionId:</strong> 0123456789
    </p>
</td>
<td>
<p>HTTP status: <code class="code--slim">200 (OK)</code></p>
<pre class="code--block">
{
  "lifeEventId": "1234567891",
  "periodStartDate": "2017-04-06",
  "periodEndDate": "2017-05-05",
  "htbTransfer": {
    "htbTransferInForPeriod": 0,
    "htbTransferTotalYTD": 0
  },
  "inboundPayments": {
    "newSubsForPeriod": 4000,
    "newSubsYTD": 4000,
    "totalSubsForPeriod": 4000,
    "totalSubsYTD": 4000
  },
  "bonuses": {
    "bonusDueForPeriod": 1000,
    "totalBonusDueYTD": 1000,
    "bonusPaidYTD": 0,
    "claimReason": "Life Event"
  },
  "supersededBy": "0000456789"
}
</pre>
</td>
</tr>
    <tr>
    <td>
    <p>Retrieve details for a bonus payment associated with a LISA account (regular bonus)</p>
    <p class ="code--block">
    <strong>lisaManagerReferenceNumber:</strong> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br>
    <strong>accountId:</strong> 1234567890<br>
    <strong>transactionId:</strong> 0003456789
    </p>
</td>
<td>
<p>HTTP status: <code class="code--slim">200 (OK)</code></p>
<pre class="code--block">
{
  "periodStartDate": "2017-04-06",
  "periodEndDate": "2017-05-05",
  "htbTransfer": {
    "htbTransferInForPeriod": 0,
    "htbTransferTotalYTD": 0
  },
  "inboundPayments": {
    "newSubsForPeriod": 4000,
    "newSubsYTD": 4000,
    "totalSubsForPeriod": 4000,
    "totalSubsYTD": 4000
  },
  "bonuses": {
    "bonusDueForPeriod": 1000,
    "totalBonusDueYTD": 1000,
    "bonusPaidYTD": 0,
    "claimReason": "Regular Bonus"
  },
  "supersededBy": "0000056789"
}
</pre>
</td>
</tr>
<tr>
    <td>
    <p>Retrieve a superseded transaction (bonus recovery)</p>
    <p class="code--block">
    <strong>lisaManagerReferenceNumber:</strong> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br>
    <strong>accountId:</strong> 1234567890<br>
    <strong>transactionId:</strong> 0000456789
    </p>
</td>
<td>
<p>HTTP status: <code class="code--slim">200 (OK)</code></p>
<pre class="code--block">
{
  "periodStartDate": "2017-04-06",
  "periodEndDate": "2017-05-05",
  "inboundPayments": {
    "newSubsForPeriod": 4000,
    "newSubsYTD": 4000,
    "totalSubsForPeriod": 4000,
    "totalSubsYTD": 4000
  },
  "bonuses": {
    "bonusDueForPeriod": 1000,
    "totalBonusDueYTD": 1000,
    "bonusPaidYTD": 0,
    "claimReason": "Superseded Bonus"
  },
  "supersede": {
    "automaticRecoveryAmount": 1000,
    "originalTransactionId": "0123456789",
    "originalBonusDueForPeriod": 1000,
    "transactionResult": -1000,
    "reason": "Bonus recovery"
  }
}
</pre>
</td>
</tr>
<tr>
    <td>
    <p>Retrieve a superseded transaction (additional bonus)</p>
    <p class="code--block">
    <strong>lisaManagerReferenceNumber:</strong> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br>
    <strong>accountId:</strong> 1234567890<br>
    <strong>transactionId:</strong> 0000056789
    </p>
</td>
<td>
<p>HTTP status: <code class="code--slim">200 (OK)</code></p>
<pre class="code--block">
{
  "periodStartDate": "2017-04-06",
  "periodEndDate": "2017-05-05",
  "inboundPayments": {
    "newSubsForPeriod": 4000,
    "newSubsYTD": 4000,
    "totalSubsForPeriod": 4000,
    "totalSubsYTD": 4000
  },
  "bonuses": {
    "bonusDueForPeriod": 1000,
    "totalBonusDueYTD": 1000,
    "bonusPaidYTD": 0,
    "claimReason": "Superseded Bonus"
  },
  "supersede": {
    "originalTransactionId": "0003456789",
    "originalBonusDueForPeriod": 4000,
    "transactionResult": 4000,
    "reason": "Additional bonus"
  }
}
</pre>
</td>
</tr>
<tr>
  <td>
<p>Request with an invalid LISA Manager reference number</p>
<p class ="code--block">
<strong>lisaManagerReferenceNumber:</strong> 123456<br>
<strong>accountId:</strong> 1234567890<br>
<strong>transactionId:</strong> 0123456789
</p>
</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 an invalid accountId</p>
    <p class ="code--block">
    <strong>lisaManagerReferenceNumber:</strong> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br>
    <strong>accountId:</strong> 1234%3D5678<br>
    <strong>transactionId:</strong> 0123456789
    </p>
</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 with an invalid bonus payment transaction</p>
    <p class ="code--block">
    <strong>lisaManagerReferenceNumber:</strong> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br>
    <strong>accountId:</strong> 1234567890<br>
    <strong>transactionId:</strong> 0000000404
    </p>
</td>
<td>
<p>HTTP status: <code class="code--slim">404 (Not Found)</code></p>
<pre class="code--block">
{
  "code": "BONUS_PAYMENT_TRANSACTION_NOT_FOUND",
  "message": "transactionId does not match HMRC’s records"
}
</pre>
</td>
</tr>
   <tr>
    <td>
    <p>Request with an invalid LISA account</p>
    <p class ="code--block">
    <strong>lisaManagerReferenceNumber:</strong> <a href="/api-documentation/docs/api/service/lisa-api/2.0#testing">Use your test user profile</a><br>
    <strong>accountId:</strong> 1234567899<br>
    <strong>transactionId:</strong> 1000000404
    </p>
</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>
</tbody>
</table>

## Path parameters

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

## Headers

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

## Response `200`

OK

- object
  - `lifeEventId` string — A reference number for a life event.
  - `periodStartDate` string, required — The first date in the claim period.
  - `periodEndDate` string, required — The end date of the claim period.
  - `htbTransfer` object — Details about Help to Buy funds.
    - `htbTransferInForPeriod` number, required — The total amount of Help to Buy funds in the account during the claim period.
    - `htbTransferTotalYTD` number, required — The total amount of Help to Buy funds in the account in the tax year to date.
  - `inboundPayments` object, required — Details about qualifying deposits and account balance.
    - `newSubsForPeriod` number — The total value of new qualifying deposits paid in to the account during the claim period.
    - `newSubsYTD` number, required — The total value of new qualifying deposits paid in to the account during the tax year to date.
    - `totalSubsForPeriod` number, required — The total amount in the account during the claim period that qualifies for a bonus payment.
    - `totalSubsYTD` number, required — The total amount in the account during the tax year to date that qualifies for a bonus payment.
  - `bonuses` object, required — Bonus payment details.
    - `bonusDueForPeriod` number, required — The total bonus payment amount due for the claim period.
    - `totalBonusDueYTD` number, required — The total bonus payment amount due for the tax year to date.
    - `bonusPaidYTD` number — The total bonus payment that has already been claimed and paid in the tax year to date.
    - `claimReason` 'Life Event' | 'Regular Bonus' | 'Superseded Bonus', required — The reason the bonus payment was claimed.
  - `supersededBy` string — The ID of the transaction that supersedes the current one.
  - `supersede` object — Correct an existing bonus claim with an additional bonus or a recovery of an overpaid amount.
    - `automaticRecoveryAmount` number — This is the amount HMRC can collect from the LISA manager in bonus recovery cases. If there are no funds available, this value must be 0.
    - `originalTransactionId` string, required — The transactionId of the original bonus affected by the correction or recovery. This is used together with the originalBonusDueForPeriod to make sure the right bonus transaction is replaced.
    - `originalBonusDueForPeriod` number, required — This is how much was in the bonusDueForPeriod in the original bonus request.
    - `transactionResult` number, required — The amount to be added to or recovered from the original bonus.
    - `reason` 'Bonus recovery' | 'Additional bonus', required — Confirm whether an additional bonus amount is due or funds need to be recovered.

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — Not Found

---

[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/versions/689ca71752fb/schema)
