---
title: "Get a Transactions Request"
method: GET
path: "/v3/connected-accounts/{account_id}/transactions/requests/{request_id}"
tags: ["Accounts"]
---

# Get a Transactions Request

`GET /v3/connected-accounts/{account_id}/transactions/requests/{request_id}`

## Request

- Base URL: `https://api.truelayer-sandbox.com`
- URL: `https://api.truelayer-sandbox.com/v3/connected-accounts/{account_id}/transactions/requests/{request_id}`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://auth.truelayer.com/connect/token` scopes: `data`

Retrieves the result of a previously created transactions request.

The response `status` is one of:
  - `pending` — the request is still being processed; poll again.
  - `completed` — the result is available in `result`.
  - `failed` — the request could not be completed; see `failure_reason`.

This endpoint is idempotent and re-readable: repeated reads of the same `request_id` return the same pre-computed page.
To retrieve a different page, create a new request via `POST` with the `next_cursor` value, which returns a new `request_id`.

This API must be called using a `client_credentials` bearer token.

## Path parameters

- `account_id` string, required
- `request_id` string, uuid, required

## Headers

- `Connection-Id` string, required
- `Tl-User-IP` string

## Response `200`

Transactions Request

- union
  - TransactionsRequestCompleted
    - `id` string, uuid, required: The unique identifier of the transactions request.
    - `status` 'completed', required: The transactions request completed successfully and the result is available.
    - `result` object, required: The pre-computed page of transactions for this request. Transactions are returned in a stable order: by `timestamp` descending, then `id` descending as a unique tie-breaker. The page is re-readable for the lifetime of the request: repeated reads of the same `id` return the same page. To retrieve the next page, create a new request with the `next_cursor` value. A null `next_cursor` means there are no further transactions.
      - `items` Transaction[], required
        - `id` string, required: TrueLayer's identifier of the transaction.
        - `timestamp` string, date-time, required: The timestamp of the transaction, in RFC 3339 format.
        - `description` string, required: Original description of the transaction as reported by the provider.
        - `currency` string, required: Specified as a 3-letter ISO 4217 currency code.
        - `amount_in_minor` integer, required: The transaction value in the minor unit of the currency. Negative for debits.
        - `status` 'pending' | 'settled', required: Whether the transaction is still pending or has settled.
        - `enrichment` TransactionEnrichment: Enrichment data derived for the transaction. Present only when enrichment was requested on the transactions request. Individual fields are only populated when they could be determined.
          - `merchant_name` string: The name of the company associated with the transaction.
          - `transaction_category` TransactionCategory: The category assigned to the transaction.
            - `category_code` string, required: The code identifying the category assigned to the transaction.
            - `category_name` string, required: The human-readable name of the category assigned to the transaction.
      - `pagination` object, required
        - `next_cursor` string: Cursor used to retrieve the next page of results. If null, there are no more items to retrieve.
  - TransactionsRequestPending
    - `id` string, uuid, required: The unique identifier of the transactions request.
    - `status` 'pending', required: The transactions request is still being processed. Poll again to retrieve the result.
  - TransactionsRequestFailed
    - `id` string, uuid, required: The unique identifier of the transactions request.
    - `status` 'failed', required: The transactions request failed and no result is available.
    - `failure_reason` string, required: The reason the transactions request failed. This list is non-exhaustive — integrators should handle unknown values gracefully. Examples: - `provider_error`

## Other responses

- `400`: Invalid Request
- `401`: Unauthenticated
- `403`: Forbidden
- `404`: Not Found
- `429`: Rate Limit Exceeded
- `500`: Unknown Error
- `502`: Provider Error
- `504`: Gateway Timeout

---

[API](https://skmtc.dev/truelayer/apis/data-api-v3.md) - [All operations](https://skmtc.dev/truelayer/apis/data-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/truelayer/apis/data-api-v3/revisions/ee1f295425a0?raw)
