---
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}`

## Request

- Base URL: `https://test-api.service.hmrc.gov.uk`
- URL: `https://test-api.service.hmrc.gov.uk/lifetime-isa/manager/{lisaManagerReferenceNumber}/accounts/{accountId}/transactions/{transactionId}`
- Auth: OAuth 2
  - Authorization code: `https://api.service.hmrc.gov.uk/oauth/authorize`
  - Token URL: `https://api.service.hmrc.gov.uk/oauth/token` scopes: `read:lisa`
- TypeScript: <https://skmtc.dev/hmrc/apis/lisa-api/docs/lifetime-isa/manager/:lisaManagerReferenceNumber/accounts/:accountId/transactions/:transactionId/get.ts> (a function with typed inputs; its response is checked against the schema)

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.dev/hmrc/apis/lisa-api.md) - [All operations](https://skmtc.dev/hmrc/apis/lisa-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hmrc/apis/lisa-api/revisions/689ca71752fb?raw)
