Cards & Wallets · Access Your Data

Transaction Reporting

Use our Reporting API to pull your transaction data into your own back office system. You can request aggregated or line by line transaction data; include Timezone, date/time and specify from a large number of available fields. Data can be retrieved as JSON, CSV, XLS or XLSX.

A Reporting API account is required — please ask our Client Management team if you would like this enabled.

Report metadata

The report metadata determines the fields that are available for reporting and the filters that can be used. For a full list of the available reporting fields you will need to call the metadata endpoint (see the example below). There are currently over 140 fields available.

API example
Get report metadata
EndpointDefinition
GET /reporting/transactions/metadata
cURL
curl -X GET "{targetEnvironmentPath}/reporting/transactions/metadata" \
  -u "{apiUser}:{apiPassword}" \
  -H "Accept: application/json"
Response
HTTP/1.1 200

{
    "description": "Reporting API Metadata",
    "version": "1.0",
    "fields": [
        {
            "field": "txn_volume",
            "description": "Number of Transactions",
            "type": "NUMBER",
            "filters": [
                "EQUALS",
                "NOT_EQUALS",
                "GT",
                "GTE",
                "IN",
                "NOT_IN",
                "LT",
                "LTE"
            ]
        },
        {
            "field": "txn_id",
            "description": "Transaction ID",
            "type": "NUMBER",
            "filters": [
                "EQUALS",
                "NOT_EQUALS",
                "GT",
                "GTE",
                "IN",
                "NOT_IN",
                "LT",
                "LTE"
            ]
        }
    ]
}
HTTP/1.1 200

{
    "description": "Reporting API Metadata",
    "version": "1.0",
    "fields": [
        {
            "field": "txn_volume",
            "description": "Number of Transactions",
            "type": "NUMBER",
            "filters": [
                "EQUALS",
                "NOT_EQUALS",
                "GT",
                "GTE",
                "IN",
                "NOT_IN",
                "LT",
                "LTE"
            ]
        },
        {
            "field": "txn_id",
            "description": "Transaction ID",
            "type": "NUMBER",
            "filters": [
                "EQUALS",
                "NOT_EQUALS",
                "GT",
                "GTE",
                "IN",
                "NOT_IN",
                "LT",
                "LTE"
            ]
        },
        {
            "field": "custom_field_myCustomField",
            "description": "My custom field",
            "type": "STRING",
            "filters": [
                "EQUALS", 
                 "NOT_EQUALS", 
                 "IN", 
                 "NOT_IN", 
                 "IS_NULL", 
                 "IS_NOT_NULL"
            ]
        }
    ]
}

Custom fields

You can also report on custom fields if they are configured on your account. When you request the report metadata, your configured custom fields will be returned and will contain the available filters which are based on the data type of the custom field — as shown by the “With a custom field” response in the metadata example above. The custom fields can then be used in the search request like any other field. Note that to prevent name clashes with the other available report fields, custom fields are all prefixed with custom_field_ when used in reporting.

Searching transactions

Use the search endpoint to retrieve the transaction data itself. Choose the fields you want returned, the filters and sorting to apply, and whether the results come back as JSON or as a CSV, XLS or XLSX export.

API examples
Search
EndpointDefinition
POST /reporting/transactions/search
Request body
{
   "limit":  2,
   "startFrom":  1,
   "fields":  [
      {
         "field":  "txn_id",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  2,
         "filter":  {
            "operation":  "NOT_EQUALS",
            "value":  [
               "1"
            ]
         }
      },
      {
         "field":  "txn_date",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  1
      }
   ],
   "includeFieldNames":  true,
   "timezone":  "+00:00"
}
cURL
curl -X POST "{targetEnvironmentPath}/reporting/transactions/search" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
   "limit":  2,
   "startFrom":  1,
   "fields":  [
      {
         "field":  "txn_id",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  2,
         "filter":  {
            "operation":  "NOT_EQUALS",
            "value":  [
               "1"
            ]
         }
      },
      {
         "field":  "txn_date",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  1
      }
   ],
   "includeFieldNames":  true,
   "timezone":  "+00:00"
}'
Response
HTTP/1.1 200

{
   "status":  "SUCCESS",
   "reasonCode":  "S100",
   "reasonMessage":  "Successful report",
   "resultsReturned":  2,
   "resultsAvailable":  20001,
   "startFrom":  1,
   "fieldNames":  [
      "txn_id",
      "txn_date"
   ],
   "data":  [
      [
         "13486631510",
         "2026-07-21"
      ],
      [
         "13486631511",
         "2026-08-10"
      ]
   ]
}
Search with custom fields
EndpointDefinition
POST /reporting/transactions/search
Request body
{
   "limit":  2,
   "startFrom":  1,
   "fields":  [
      {
         "field":  "txn_id",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  2,
         "filter":  {
            "operation":  "NOT_EQUALS",
            "value":  [
               "1"
            ]
         }
      },
      {
         "field":  "txn_date",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  1
      },
      {
         "field":  "custom_field_myCustomField",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  3
      }

   ],
   "includeFieldNames":  true,
   "timezone":  "+00:00"
}
cURL
curl -X POST "{targetEnvironmentPath}/reporting/transactions/search" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
   "limit":  2,
   "startFrom":  1,
   "fields":  [
      {
         "field":  "txn_id",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  2,
         "filter":  {
            "operation":  "NOT_EQUALS",
            "value":  [
               "1"
            ]
         }
      },
      {
         "field":  "txn_date",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  1
      },
      {
         "field":  "custom_field_myCustomField",
         "display":  true,
         "sort":  "ASC",
         "sortOrder":  3
      }

   ],
   "includeFieldNames":  true,
   "timezone":  "+00:00"
}'
Response
HTTP/1.1 200

{
   "status":  "SUCCESS",
   "reasonCode":  "S100",
   "reasonMessage":  "Successful report",
   "resultsReturned":  2,
   "resultsAvailable":  20001,
   "startFrom":  1,
   "fieldNames":  [
      "txn_id",
      "txn_date",
      "custom_field_myCustomField"
   ],
   "data":  [
      [
         "13486631510",
         "2026-07-21",
         "Custom field value 1"
      ],
      [
         "13486631511",
         "2026-08-10",
         "Custom field value 2"
      ]
   ]
}