Get Transactions

List transactions of a particular user

Overview

This GET endpoint enables you to retrieve a list of transactions that the have been made on a particular trading account. The number of retrieved transactions can be specified in the request header.

There are eight required parameters that must be provided in the request:

  1. Authorization (header). This is the authorization token from the very first token request. The value of this header must have the following format: Bearer BQ898r9fefi (Bearer + 1 space + the token).

  2. API version (path). Unless necessary, leave it at "1.0".

  3. accountId (query). This is the ID of the trading account whose transactions need to be retrieved.

  4. pageSize (query). This field indicates the number of transactions that needs to be retrieved per page.

  5. pageNumber (query). This field indicates the number of the page that needs to be retrieved (all transactions are split into a set of pages that can be loaded one by one).

  6. sortBy (query). This is the field by which the retrieved transactions ought to be sorted. For example, if you the value of this parameter is set to Quantity, the retrieved alerts will be sorted by the number of shares involved in the transaction.

  7. isDesc (query). This field indicates if the list of retrieved transactions should be sorted in the descending order (true) or ascending order (false).

There's also one optional parameter worth examining:

  • filter (request query). This is an SQL query used to retrieve only those transactions that satisfy the conditions of the query.

Filter Syntax

The syntax for filter queries is rather simple: each parameter of a transaction can serve as a filter. The conditions that a parameter needs to satisfy can be expressed in the following ways:

  1. Parameter (=, <, >, <=, >=) value. For example: SecurityId = 4

  2. Parameter (=, contains, startsWith, endsWith) string. For example: Date >= #2019-03-18T11:10:14.036Z#

  3. Parameter in (value1, value2, etc.). In this case the parameter has to be contained in the set of values in the parentheses to satisfy the filter condition. For example: Id in (7420, 7630, 9870)

  4. Parameter between Value1 and Value2. In this case the parameter has to be in the specified range between Value1 and Value2 to satisfy the filter condition. For example: Quantity between 0 and 1000.

Boolean values are provided in the following format: true and false.

Numeric values are provided in the regular format: 2500.

Strings must be highlighted with quotation marks: 'USD'.

Dates must be highlighted with the pound sign: #2019-08-09T18:31:42#.

The following table lists a set of sample queries:

Note that you can combine different queries to create more complex requests:

  • SecurityId = 4 and Quantity between 0 and 1000

Here's the final template for this API request:

GET apiURL/v1.0/accounts/6303/transactions/?pageNumber=0&pageSize=10&sortBy=Quantity&isDesc=true

Response

In response to this API request, you'll receive a JSON file with the list of transactions that have been made on the specified trading account.

{
    "Result": [
        {
            "Id": 2390187,
            "SecurityId": 4,
            "OrderStateId": 168831,
            "AccountId": 6303,
            "Date": "2019-01-22T14:30:03.7328576Z",
            "Value": -23485.5,
            "Quantity": 150,
            "LeavesQuantity": 150,
            "Fee": {
                "Id": 156823,
                "Value": 23355,
                "Seizure": "Order",
                "Leverage": 1,
                "ValueType": "Absolute"
            },
            "Type": "OrderExecution",
            "IsDayTrade": false
        },
        {
            "Id": 2387057,
            "SecurityId": -1,
            "OrderStateId": 0,
            "AccountId": 6303,
            "Date": "2019-01-14T12:29:14.3203481Z",
            "Value": 1000000,
            "Quantity": 0,
            "LeavesQuantity": 0,
            "Type": "Payment",
            "IsDayTrade": false,
            "Description": "Initial deposit"
        },
        {
            "Id": 2390186,
            "SecurityId": 4,
            "OrderStateId": 168831,
            "AccountId": 6303,
            "Date": "2019-01-22T14:30:03.7328576Z",
            "Value": -3.75,
            "Quantity": 0,
            "LeavesQuantity": 0,
            "Fee": {
                "Id": 156822,
                "CommissionId": "Per Trade Commission",
                "Value": 3.75,
                "Seizure": "Execution",
                "Leverage": 1,
                "ValueType": "Absolute"
            },
            "Type": "Commission",
            "IsDayTrade": false
        }
    ],
    "NextPageLink": "",
    "PreviousPageLink": "",
    "TotalCount": 3
}

where:

Common Mistakes

Here are some of the common mistakes that developers make when attempting to retrieve the list of transactions made on a particular trading account.

Failing to Specify the Query Parameters

It's crucial to understand that the pageSize, pageNumber, isDesc, and sortBy parameters must be provided in the request; otherwise you'll receive the 404 status code and the following message:

{
    "Error": {
        "Code": "UnsupportedApiVersion",
        "Message": "The requested resource with API version '1.0' does not support HTTP method 'GET'."
    }
}

The following article covers the syntax for this API request in detail.

Last updated