---
title: "Get transactions"
method: GET
path: "/v3/merchant-accounts/{id}/transactions"
tags: ["Merchant accounts"]
---

# Get transactions

`GET /v3/merchant-accounts/{id}/transactions`

## Request

- Base URL: `https://api.truelayer-sandbox.com`
- URL: `https://api.truelayer-sandbox.com/v3/merchant-accounts/{id}/transactions`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://auth.truelayer.com/connect/token` scopes: `payments`

Get the transactions of a single merchant account. Transactions are filtered and sorted by settled or executed date.
> 🚧
> If the pagination object is missing, add a header `tl-enable-pagination: true` in the request to enable pagination (for more details click [here](https://docs.truelayer.com/docs/get-your-merchant-account-transactions-or-payment-sources#pagination-for-the-transactions-endpoint))

## Path parameters

- `id` string, uuid, required: Unique ID for the Merchant Account

## Query parameters

- `from` string, datetime, required
- `to` string, datetime, required
- `cursor` string
- `type` 'payment' | 'payout'

## Response `200`

Transactions

- GetTransactions
  - `items` Transaction[], required
    - union
      - TransactionMerchantAccountPayment: Payment into the merchant account initiated by a TrueLayer Payment
        - `type` 'merchant_account_payment', required
        - `id` string, required: Unique ID for the Transaction
        - `currency` 'GBP' | 'EUR' | 'PLN', required
        - `amount_in_minor` integer, required
        - `status` 'settled', required
        - `settled_at` string, datetime, required: The date and time the transaction was settled
        - `payment_source` SettledPaymentSource, required
          - `id` string, uuid, required
          - `account_holder_name` string, required
          - `account_identifiers` AccountIdentifier[], required
            - union: A unique scheme identifier for an external account.
              - …
        - `payment_id` string, required: Unique ID for the Payment
        - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - TransactionExternalPayment: Payment into the merchant account _not_ initiated by a TrueLayer Payment
        - `type` 'external_payment', required
        - `id` string, required: Unique ID for the Transaction
        - `currency` 'GBP' | 'EUR' | 'PLN', required
        - `amount_in_minor` integer, required
        - `status` 'settled', required
        - `settled_at` string, datetime, required: The date and time the transaction was settled
        - `remitter` object, required
          - `account_holder_name` string, required: The name of the external account holder.
          - `reference` string, required
          - `account_identifiers` AccountIdentifier[], required
            - union: A unique scheme identifier for an external account.
              - …
        - `return_for` union
          - object
            - `type` 'identified', required: This external payment returned an outbound transaction.
            - `returned_id` string, required: Unique ID for the outbound transaction that returned
          - object
            - `type` 'unknown', required: This external payment returned an unknown outbound transaction.
      - TransactionPayoutExecuted: Payment out of the merchant account
        - `type` 'payout', required
        - `id` string, required: Unique ID for the Transaction
        - `currency` 'GBP' | 'EUR' | 'PLN', required
        - `amount_in_minor` integer, required
        - `status` 'executed', required
        - `created_at` string, datetime, required: The date and time the transaction was created
        - `executed_at` string, datetime, required: The date and time the transaction was executed
        - `beneficiary` union, required
          - PayoutDestinationExternalAccount: The routing information for an external bank account.
            - `type` 'external_account', required: Type `external_account`
            - `reference` string, required: The reference for the payout, which displays in the beneficiary's bank statement. For SEPA payments, the maximum length is **140 characters**. The format must respect the requirements specified [here](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best). For FPS payments, the maximum length is **18 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s#=!"%&*<>;{@\r\n]*$` For Elixir payments, the maximum length is **20 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s]*$`
            - `account_holder_name` string, required: The name of the external account holder.
            - `account_identifiers` AccountIdentifier[]
              - …
            - `account_holder_verification` union
              - …
          - PayoutDestinationVerifiedExternalAccount: Payout response for an external account using a previously completed verification. The beneficiary details (name and account identifier) are retrieved from the verification.
            - `type` 'verified_external_account', required: Type `verified_external_account`
            - `account_holder_verification_id` string, uuid, required: The ID of the account holder verification
            - `account_holder_name` string, required: The name of the external account holder (retrieved from verification)
            - `account_identifiers` AccountIdentifier[], required
              - …
          - PayoutDestinationPaymentSource
            - `type` 'payment_source', required: Type `payment_source`
            - `payment_source_id` string, required: ID of the external account which has become a payment source
            - `user_id` string, required: ID of the owning user of the external account
            - `reference` string, required: The reference for the payout, which displays in the beneficiary's bank statement. For SEPA payments, the maximum length is **140 characters**. The format must respect the requirements specified [here](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best). For FPS payments, the maximum length is **18 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s#=!"%&*<>;{@\r\n]*$` For Elixir payments, the maximum length is **20 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s]*$`
            - `account_holder_name` string, required: The name of the account holder.
            - `account_identifiers` AccountIdentifier[], required
              - …
          - PayoutDestinationBusinessAccount
            - `type` 'business_account', required: Type `business_account`
            - `account_holder_name` string, required: The name of the external account holder.
            - `account_identifiers` AccountIdentifier[], required
              - …
            - `reference` string, required: The reference for the payout, which displays in the beneficiary's bank statement. For SEPA payments, the maximum length is **140 characters**. The format must respect the requirements specified [here](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best). For FPS payments, the maximum length is **18 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s#=!"%&*<>;{@\r\n]*$` For Elixir payments, the maximum length is **20 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s]*$`
          - TransactionPayoutDestinationUserDetermined: User determined beneficiary details
            - `type` 'user_determined', required: Type `user_determined`
            - `reference` string, required: The reference for the payout, which displays in the beneficiary's bank statement. For SEPA payments, the maximum length is **140 characters**. The format must respect the requirements specified [here](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best). For FPS payments, the maximum length is **18 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s#=!"%&*<>;{@\r\n]*$` For Elixir payments, the maximum length is **20 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s]*$`
            - `account_holder_name` string: The name of the external account holder.
            - `account_identifiers` AccountIdentifier[]
              - …
          - PayoutDestinationServiceProvider
            - `type` 'service_provider', required: Type `service_provider`, paid to TrueLayer's internal account.
        - `context_code` 'withdrawal' | 'service_payment' | 'internal', required
        - `payout_id` string, required: Unique ID for the Payout
        - `returned_by` string: Unique ID for the external payment that returned this payout
        - `scheme_id` 'faster_payments_service' | 'sepa_credit_transfer' | 'sepa_credit_transfer_instant' | 'polish_domestic_standard' | 'polish_domestic_express' | 'norwegian_domestic_credit_transfer'
        - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
      - TransactionRefund: Payment refund out of the merchant account
        - `type` 'refund', required
        - `id` string, required: Unique ID for the Transaction
        - `currency` 'GBP' | 'EUR' | 'PLN', required
        - `amount_in_minor` integer, required
        - `status` 'executed', required
        - `created_at` string, datetime, required: The date and time the transaction was created
        - `executed_at` string, datetime: The date and time the transaction was executed, provided in status "executed"
        - `beneficiary` PayoutDestinationPaymentSource, required
          - `type` 'payment_source', required: Type `payment_source`
          - `payment_source_id` string, required: ID of the external account which has become a payment source
          - `user_id` string, required: ID of the owning user of the external account
          - `reference` string, required: The reference for the payout, which displays in the beneficiary's bank statement. For SEPA payments, the maximum length is **140 characters**. The format must respect the requirements specified [here](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/sepa-requirements-extended-character-set-unicode-subset-best). For FPS payments, the maximum length is **18 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s#=!"%&*<>;{@\r\n]*$` For Elixir payments, the maximum length is **20 characters**. The format must respect this regex: `^[a-zA-Z0-9\/\-?:().,'+\s]*$`
          - `account_holder_name` string, required: The name of the account holder.
          - `account_identifiers` AccountIdentifier[], required
            - union: A unique scheme identifier for an external account.
              - …
        - `context_code` 'withdrawal' | 'service_payment' | 'internal', required
        - `refund_id` string, required: Unique ID for the refund
        - `payment_id` string, required: Unique ID for the Payment
        - `returned_by` string: Unique ID for the external payment that returned this refund
        - `scheme_id` 'faster_payments_service' | 'sepa_credit_transfer' | 'sepa_credit_transfer_instant' | 'polish_domestic_standard' | 'polish_domestic_express' | 'norwegian_domestic_credit_transfer'
        - `metadata` Metadata: Optional field for adding custom key-value data to a resource. This object can contain a maximum of 10 key-value pairs, each with a key with a maximum length of 40 characters and a non-null value with a maximum length of 500 characters.
  - `pagination` Pagination, required: Pagination object. Optional next cursor to use as query parameters to fetch the page next to the one fetched.
    - `next_cursor` string: Cursor to be used as `cursor` query parameter to fetch the _next page_ in pagination-ready endpoints.

## Other responses

- `401`: Unauthenticated
- `403`: Forbidden
- `404`: Account Not Found
- `500`: Unknown Error

---

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