# Get ledger transactions

Retrieve a paginated list of ledger transactions for your tenant within a specified date and time range. This endpoint returns detailed transaction data, including amounts, references, operations, and running balances, so you can reconcile balance changes over time for a given currency.

Endpoint: GET /v2/ledger-transactions
Version: 2025.11
Security: Bearer

## Query parameters:

  - `currency` (string, required)
    Three-letter ISO 4217 currency code for the transactions to return (for example, USD).
    Example: "USD"

  - `start-dttm` (string, required)
    Start of the date and time range (inclusive), in UTC, for which you want to retrieve ledger transactions.
    Example: "2022-02-27T08:30:00Z"

  - `end-dttm` (string, required)
    End of the date and time range (exclusive), in UTC, for which you want to retrieve ledger transactions.
    Example: "2022-02-27T08:30:00Z"

  - `status` (string)
    Filter results by transaction status. Allowed values: - SUCCESS: the ledger transaction completed successfully. - PENDING: reserved for future use to represent an in-flight ledger transaction.

  - `txnReference` (string)
    Filter results by an exact transaction reference. Use this to locate all ledger transactions associated with a specific external reference.

  - `page-size` (integer, required)
    Number of records to return in the response page. Use page-size together with offset for offset-based pagination

  - `offset` (integer)
    Number of records to skip before starting to return results. Use this with page-size to implement offset-based pagination.
For example, offset=25&page-size=25 returns the second page of results.

  - `sort-key` (string)
    Field to use for sorting the results. Allowed values include: - CREATED_AT: sort by transaction creation timestamp. - STATEMENT_OPERATION: sort by the operation type (for example, CREDIT, DEBIT). - STATEMENT_SOURCE: sort by the transaction source (for example, PAYMENTS, BANK). - STATEMENT_STATUS: sort by the ledger transaction status. - STATEMENT_TXN_REFERENCE: sort by the transaction reference. - STATEMENT_UPDATED_AT: sort by the last update timestamp.

  - `sort-direction` (string)
    Sort direction. Allowed values: - ASC: ascending order. - DESC: descending order.

## Response 200 fields (application/json):

  - `offset` (integer)
    Offset used in the request to skip a specific number of records.

  - `pageSize` (integer)
    Number of records requested per page
    Example: 25

  - `pageElements` (integer)
    Number of records returned in requested page
    Example: 25

  - `total` (integer)
    Total number of records available for the given filters.
    Example: 1000

  - `statementTransactions` (array)
    Statement transaction details for the tenant.

  - `statementTransactions.tenant` (string)
    Identifier of the tenant that owns this ledger transaction.
    Example: "rocketfuel"

  - `statementTransactions.amount` (number)
    Amount of the transaction applied to the tenant’s ledger account.
    Example: 100

  - `statementTransactions.currency` (string)
    Three-letter ISO 4217 currency code of the transaction.
    Example: "USD"

  - `statementTransactions.txnReference` (string,null)
    External reference that links this ledger transaction to a payment or other upstream operation. Present for RESERVE and DEBIT operations, where it matches the Payments Direct payment ID. Null for all other operation types.

  - `statementTransactions.operation` (string)
    Operation performed on the tenant’s prefunded ledger account.

  - `statementTransactions.txnSource` (string)
    Source of the ledger transaction (for example, which system or flow created it).

  - `statementTransactions.status` (string)
    State of the ledger transaction.

  - `statementTransactions.createdDttm` (string)
    Timestamp (UTC) when the ledger transaction was created.
    Example: "2024-06-01T00:00:00.000000Z"

  - `statementTransactions.updatedDttm` (string)
    Timestamp (UTC) when the ledger transaction was last updated.
    Example: "2024-06-01T00:00:00.000000Z"

  - `statementTransactions.availableBalanceBefore` (number)
    Available ledger account balance (in the transaction currency) immediately before this transaction was applied.
    Example: 100

  - `statementTransactions.availableBalanceAfter` (number)
    Available ledger account balance (in the transaction currency) immediately after this transaction was applied.
    Example: 90

## Response 400 fields (application/json):

  - `status` (integer, required)
    The HTTP status code representing the error response
    Example: 400

  - `errors` (array, required)
    An array containing details about the errors encountered

  - `errors.code` (string, required)
    A unique error code that identifies the specific error
    Example: "SYS_003"

  - `errors.type` (string, required)
    A high-level categorization of the error, indicating the type of issue that occurred
    Example: "SYSTEM_ERROR"

  - `errors.title` (string, required)
    A brief, user-friendly description of the error
    Example: "Internal Server Error"

  - `errors.description` (string, required)
    A more detailed explanation of the error, including potential causes and next steps
    Example: "The payout category value must be one of BANK, EWALLET, CASH_PICKUP, or ATM."

  - `errors.timestamp` (string, required)
    The timestamp of the error occurrence
    Example: "2024-01-02T14:16:00Z"

## Response 401 fields (application/json):

  - `status` (integer, required)
    The HTTP status code representing the error response
    Example: 400

  - `errors` (array, required)
    An array containing details about the errors encountered

  - `errors.code` (string, required)
    A unique error code that identifies the specific error
    Example: "SYS_003"

  - `errors.type` (string, required)
    A high-level categorization of the error, indicating the type of issue that occurred
    Example: "SYSTEM_ERROR"

  - `errors.title` (string, required)
    A brief, user-friendly description of the error
    Example: "Internal Server Error"

  - `errors.description` (string, required)
    A more detailed explanation of the error, including potential causes and next steps
    Example: "The payout category value must be one of BANK, EWALLET, CASH_PICKUP, or ATM."

  - `errors.timestamp` (string, required)
    The timestamp of the error occurrence
    Example: "2024-01-02T14:16:00Z"

## Response 500 fields (application/json):

  - `status` (integer, required)
    The HTTP status code representing the error response
    Example: 400

  - `errors` (array, required)
    An array containing details about the errors encountered

  - `errors.code` (string, required)
    A unique error code that identifies the specific error
    Example: "SYS_003"

  - `errors.type` (string, required)
    A high-level categorization of the error, indicating the type of issue that occurred
    Example: "SYSTEM_ERROR"

  - `errors.title` (string, required)
    A brief, user-friendly description of the error
    Example: "Internal Server Error"

  - `errors.description` (string, required)
    A more detailed explanation of the error, including potential causes and next steps
    Example: "The payout category value must be one of BANK, EWALLET, CASH_PICKUP, or ATM."

  - `errors.timestamp` (string, required)
    The timestamp of the error occurrence
    Example: "2024-01-02T14:16:00Z"


